How to use HSPiP
Although HSPiP does many things, it’s probably best to start with the Sphere that is at the heart of so much of HSP. As with everything to do with HSPiP you can find out much more about the background to the topic by reading the eBook which is opened by clicking on the Book icon , or by going to your HSPiP Data folder and opening Hansen Solubility Parameters in Practice.pdf in Acrobat Reader.

Remember what we’re trying to do. We need to define a sphere which says “All (or most) of the solvents inside this sphere dissolve the polymer (or dissolve the ink or 3ddisperse the pigment or …) and none (or few) of the solvents outside this sphere dissolve the polymer. The problem is to find the centre of the sphere (the HSPs of the polymer/ink/pigment…) and the radius.

Your task is to select a group of relevant solvents and perform the tests. We can’t tell you which solvents to use, but the examples with the program give you some good ideas. The rule is “as broad a range of D, P, H parameters as possible whilst giving you the least amount of work”. If you try to use too many solvents then you will find it too much work and won’t want to use the technique regularly. If you use too few solvents (or too narrow a range) then the calculated fit might be inaccurate or misleading.

You now label each relevant solvent as "Inside" with a "1" and "Outside" with a "0". We use “Inside” and “Outside” instead of the conventional “Good” and “Bad” because this generalises the concept. For example, it doesn’t make sense to call something which is inside the sphere “Good” when we mean that it shows high toxicity and we want the Sphere to identify the radius of toxic behaviour. If you enter a space or a “-“ that solvent is ignored. You can, if you wish, score the solvents from 1 (should be very close to the centre of the Sphere) to 6 (should be very far outside the Sphere radius) as discussed below.

You then click the Calculate button and the program finds the best fit of the data, defined as the smallest radius which gives the closest fit to a "1.000" which is perfect. Perfection is defined as all Inside solvents (Blue solid circles) being within the radius and all Outside solvents (Red solid squares) outside the radius. Any Inside solvents outside the radius (or Outside ones within) reduce the Fitness parameter depending on how far outside (inside) they are. Such "wrong" solvents are marked with a "*" in the listing and as Blue open circles (for Inside ones outside) and Red open squares (for Outside ones inside) in the plots. If you prefer your Sphere to be a wireframe rather than solid, select the Wireframe option.

Obviously it makes no sense to try to calculate a Sphere if all your solvents are “Inside” as the program has no way of knowing the outer limit of your Sphere. Similarly, it makes no sense if all your solvents are “Outside”. The program checks for each of these cases and gives you a warning.

Users get worried if the fit jumps around each time they press the Calculate button. This is a feature not a bug – the fitting deliberately starts with random parameters to avoid always falling into a false minimum. If the fitting landscape is very broad (something’s wrong with the data) then different values will be reported. If the landscape has a deep optimum then that solution will always be found.

The analysis of the fit tells you the number of Inside and Outside solvents (and the total number) the D, P, H and R, plus the goodness of the fit then a list of the Wrong In and Wrong Out solvents so you can quickly identify whether their absence of fit is experimental error or a genuine puzzle.

The data list adds a value for the RED (Relative Energy Difference) number defined by Dr Hansen as HSP distance between the given solvent and the reference value, divided by the radius that defines goodness. An Inside solvent has a RED number <=1. A “Wrong Out” solvent is a solvent that should be Inside but has a RED number >1. An Outside solvent has a RED number >1. A “Wrong In” solvent is a solvent that should be Outside but has a RED number <=1.

Some users prefer to grade the Inside and Outside from 1 to 6 with 1 being Very Much Inside and 6 being Very Much Outside. If you choose this system then your fit depends on whether you include the 2’s or the 3’s (or 4’s or 5’s) as “Inside”. You can play with this by choosing a value from the “Inside” combo-box. You can also choose a Graded option from the “Inside” choice. If you do this then solvents with a score greater than 1 are penalised if they are inside the calculated sphere, but those with a value of 2 are penalised much less for being inside, the 3 are penalised less, the 4’s are penalised normally and the 5 and 6 values are penalised with increasing severity. If you have Graded selected when you simply have 0’s for the “outside” solvents the behaviour is the same as if you had the standard “1” selected.

How good is the fit? If the data are good then there is mathematically only one good solution and however often you click the Calculate button, you will get (nearly) the same answer. If the data are bad (or if there are too few data points to define a good Sphere) then there isn’t a unique good fit. The program deliberately starts its search from a different point in HSP space and if the space is bad, the optimum will be different each time. So it is always a good idea to click Calculate a few times. If the calculated values change a lot then you have a broad optimum which is hard to find. This means either that the sample you are testing is very inhomogeneous (impurities, co-polymers…), that you have some errors in your data or that you’ve used too few solvents to define the Sphere unambiguously. 

Another way to evaluate the fit is to look at the Core values shown in the outputs. Around the best fit is an area where the fit is almost as good. The question is, how wide is that area. If it is small then the fit is very precise. If it is large (maybe just in one dimension) then the data are not good enough to provide a high-quality fit. The Core values represent the ± values for the three parameters around the best fit which are considered “close” to the best fit. The definition of “close” has been chosen on the basis of tests on a variety of good and bad fits and seems to be a reasonable indicator that can show good fits (e.g. ±0.25 in all three parameters) and bad fits (±0.75 in at least on parameter). If the fit is bad in one parameter that probably means that the suite of test solvents did not cover a wide-enough range in that parameter.

When you are exploring data you sometimes get a very large radius which seems improbable to you. You can force the fit to not exceed the value you include in the Double-click radius (see below for an explanation of this value) by checking the Limit box next to the double-click radius input. If you accidentally leave this on you might get some funny results later on, so use this trick with some caution.

If you are convinced that you know the true centre but want to know the Radius and quality of fit, click on the F-Fit (Force Fit) option. Simply enter your HSP values and click the calculate button to the right of the HSP. (This option is also useful if you want to enter some historical HSP fit for retrospective analysis). Or if you are certain that you know δTot and want to constrain your fit, then enter your δTot value plus an estimate of “Tightness” of compliance to that δTot and click the calculate button to the right of the δTot. The smaller the value of Tightness, the more the fit is penalised for straying from your requested δTot, but (in principle) the worse the resulting fit. You can try a value of 0.5 (“Tight”) then 5 (“Loose”) to see what happens to the quality of your fit when forced to your δTot.

Further fitting options are described below

What list of solvents do you use? You can start with 27 solvents in the Default Set (this demo set is for PLA), or  ~1200 solvents provided as the default (you can load this at any time with Open Master Data Set) or the 88 original Hansen solvents (provided as a reference and also as part of the exhaustive 33/88 file set of all 33 polymers tested with the 88 solvents as in Appendix 3 of the second edition of the Hansen handbook), or a modest Hansen set or you can create one of your own. Files used to be saved as simple text files labelled as .HSD (HSPiP Solvent Data) and these are still valid. But the default format is .HSDX which is an XML-style format. If you want to create a standard set from a larger set then place a 0 or 1 in the score column for the relevant solvents (to show that they are being Used) and click File Save Used Only and only those solvents will be included in the .hsdx file saved. 

If you over-write an existing file, a backup is automatically made.

If you’ve loaded a file and want to get rid of the scores in the column, the Clear button sets them all to a neutral “-“, preceded by a warning. If you often want to do this and don’t like the warning, then Shift-Clear just clears it. If you want them all to be cleared to “0” then press Ctrl-Clear (with a warning) or Ctrl-Shift-Clear (no warning).

There are 4 options for opening files: 
•	Open simply opens a file.  This can open both .hsdx and .sofx files, allowing you to see the extra data within a SO file.
•	Open with Merge merges your chosen file with the current file. It checks if the number or name is the same as a current entry and if it is it then checks the HSP and MVol values. If they are all identical then this entry in the dataset is ignored because it’s already in the dataset. If there is difference in one or more of the values then the data are added as a row with a light blue color. At the end of the merge the table is automatically sorted by name and you can then look for all light blue entries which should be next to their equivalents. You then have to decide which is the correct value – knowing that the non-coloured row was the original in the table. Once you’ve decided on the correct row, simply highlight the bad row and press Delete to remove it. Remember to save the merged file when you’ve done all the corrections.
•	Open with AutoCheck checks each entry and if it contains a CAS # that matches the entry in the Master Data Set its HSP are automatically updated to that in the dataset. You should do this for critical datasets each time there’s a major revision of the HSPiP program with, therefore, some changes in some of the values. The number of changes is usually very small and the chances that you have older values is even smaller, but it’s worth doing if you want to be absolutely sure. The checking can be a bit slow, so be patient. At the end of the checking a message appears to tell you what values (if any) were changed. Remember to save the revised version if you are happy with the changes.
•	Open Master Data Set, as mentioned above, opens the whole official set if that’s useful for you.

You can sort the list of solvents simply by clicking on the relevant column. One click will sort that column Descending, the next click will sort it Ascending. The sorting of the Name column makes an attempt to conform to intelligent chemical sorting criteria, but you’ll have to forgive occasional lapses.

To Delete an entry, click on the row selector at the edge (just as in Excel) and the whole line is selected. Then press the Del key. You can highlight multiple rows using combinations of Ctrl-Click and Shift-Click so that you can delete multiple rows with one action.

To see a plot of all your current solvents without performing a calculation, click the S Show button. If you are trying to create your own solvent set, this Show function is useful as you can see how much of HSP space your solvents cover and whether you have too many in one area and too few in another. There is a mixture of art and science in getting a good test set for your own application. You have to balance precision (the more solvents, well distributed, the more accurate the values) with speed (the fewer the faster) and safety/convenience (some solvents in “interesting” locations can be hazardous). If you know your polymers are rather aromatic, there’s little point in testing with lots of solvents with high H/P values, and hydrophilic polymers will gain little insight from a lot of tests with low H/P values.

If you have scores for your solvents (0, 1 or 1…6) then the solvents are colour coded according to your score. Given that you can use the scores to show any aspect of your solvents, this is a nice way to visually explore how your chosen solvents fit within HSP space.

In the 6th Edition the S+ option was added. If you are trying to measure the HSP then your solvent selection should probably be centred not too far from the likely centre of your solute, the sphere they encompass should be neither too small nor too large, and the solvents should be neither too close (little new information from such solvents) or have excessive gaps in the δD, δP or δH directions.

When you select S+ and click S you get the same display of solvents, plus a sphere defined by the Double-Click radius and a set of values displayed in the information box: a centre based on the average of the solvent values; the minimum Distance between any pair of solvents (named) and the largest gap in δD, δP and δH directions as an indication of how well you are covering HSP space. The δH test doesn’t include ethanol and alcohols (and water) beyond it as these are widely spaced.

What do you do if the bounding sphere is too large or too small, if the centre is wrong, if the closest pair is too close or there is a large gap in, say, the δP plane? Play around with a few alternative solvents until you get a better balance. The aim of your solvents is to get the best sphere for the least effort. If your bounding sphere is too small or too large, think how to refine it. If you currently have both toluene and xylene, these will show up as a close pair. If you have a gap in δP space, why not remove toluene from your tests and find a solvent to fill the δP gap while not being too close to any other solvent.

To make this easy, add a few potential solvents and set their score to “?” (without the quote marks). Click S and your analysis will be unchanged, i.e. “?” solvents are ignored. Now set one of your current solvents to “?” and one of the new solvents to “-“. Click S and you get a new set of values. You can very quickly find which solvent swap gives you a better solvent set.

The addition of the S+ option came out of a meeting where we were looking at methodologies for measuring nanoparticle HSP values. Some of the test sets being used were visually unsatisfactory but we didn’t have a metric. Later testing the S+ analysis on these sets confirmed what we had visually suspected and allowed some intelligent swapping of one or two solvents to increase the quality of the measured values.  

The size of the solvent spheres can be fixed or, if the MVol Correction option is clicked, made relative to the MVol.  If you want to highlight some molecules relative to others, you might choose to enter dummy MVol values that give you the relative sizes you prefer.

File formats
For 10 years the .hsd and .sof file formats were super-convenient because as simple tab separated text files they were very easy to edit in a text editor or something like Excel. However, they lacked consistent support for CAS # and SMILES and were an unwieldly format for internal use. So from v5.1 onwards the default is the .hsdx and .sofx formats which use XML, the de-facto standard for much of the world’s data. Because CAS and SMILES are now an integral part, it will be much easier to conduct future updates of values or for users to do further processing of the data.

Importing into Excel is straightforward using the XML import choice and similarly files can be saved in the new format.

Improving your fit
One way to improve the fit is to use the MVol Correction. This modifies the fitting algorithm so that bigger good molecules and smaller bad molecules are accepted as “out” and “in” respectively on the basis that their molar volumes decrease and increase their solubility respectively. The Sphere that results can show good molecules outside, but that’s OK if they are small. The relative molar volumes are shown (exaggerated) as different sized spheres and cubes.

Another way to look at the quality of the fit is via the “Core” values shown in the output. This attempts to show how much the centre of the Sphere can move in the different directions without incurring too high a penalty. Clearly the larger the Core values, the less tightly the Sphere is defined, so some extra solvents might be necessary to refine it. This links in to the SRC option, described next.

How do you know if you’ve used enough test solvents to really define the Sphere and its Radius? Following a user’s suggestion we’ve added an interesting technique. By clicking the Sphere Radius Chk option before pressing the Calculate button the program carries out a Sphere Radius Check. It goes through a list of 80+ solvents (based on the classic 88 solvent list from Charles) and finds any that are near the boundary of the Sphere (i.e. they have an RED of 0.9 to 1.1). It then checks each of those solvents for closeness to solvents in your test list. If they are close then you already have sufficient data in that area. But if none of your solvents is close then it’s likely that this test solvent would provide useful new information to help improve the quality of the fit.

Each of these solvents is added to your current list and a message appears summarising what has happened. These solvents also appear in orange on the 3 2D and 1 3D plot so you can see which holes in solvent space they are filling.

What do you now do? You are smarter than the computer. So you use your own judgement. Are any of these solvents really providing useful extra information? If so are these solvents available/safe/convenient? Is it worth doing an extra few solvent checks?

You even have a different judgement to make. If you think that that part of solvent space would really be useful to fill, but you don’t like the suggested solvent (or it’s not in the lab) you can go to Solvent Optimizer to find a solvent blend that would give you something close.

Finally, you may want to use a different set of solvents for the SRC. Feel free to open SphereCheckMaster.hsdx file and add/remove solvents via the usual manner.

In other words, don’t click the SRC option unless you want to get involved in more work and more decisions. If “good enough” is good enough for your fitting data, then maybe it’s not worth trying the SRC option. But it might just suggest a relatively easy 1 or 2 extra tests that would help pin down the Sphere values, so it’s a good idea to at least have one go with the SRC option. 

Other Fitting options
In the Fitting box you have a choice of another 3 methods:
•	Genetic Algorithm. This is a classic Genetic Algorithm which sets different criteria for optimal fit and, of course, reaches its optimum via a different method from the classic Hansen Sphere algorithm. The “Fit” quality is calculated differently from the classic algorithm and is only intended for comparison with other GA fits – not for comparison with the classic Hansen fit.
•	Double Sphere. This assumes that your material (e.g. a di-block co-polymer) is best described with two spheres, found via a Genetic Algorithm.
•	Data points. Selecting this automatically enables options inside the box beneath it. This assumes that your values are real data such as solubility, where more is better (unless you select the “Good is small” option). This fit makes the maximum use of your hard-won data and will generally be more accurate than any “good/bad” split. The downside is that “Radius” becomes meaningless so you have to provide your own value for the plot and RED calculations. As a check, you can select the Split High/Low option and set a value dividing good from bad and then get a Classic GA fit. You can choose a Use Log Fit option which changes the numerics and might give a different answer. An alternative way of fitting to Data points is via Fit to Exponential. In both cases you get a plot of experimental v calculated (Show Fit) or as a plot of solubility against distance (Show Distance). For the non-exponential fit, the data might look strange. This is deliberate – focus on the good values, not the bad ones! The MVC option should be selected for the Exponential fit if the solubilities are by weight rather than molarity – but in practice you can try the fits with and without this option to see which is better.

Just as with the Classic method, the results from the Genetic Algorithm and Double Sphere methods can vary because they (deliberately) use random starting points. This is a feature, not a bug. If the answers from consecutive calculations are similar, this is a good sign that the fit is robust, otherwise, treat the results with caution.

The Genetic Algorithms are slower than the Classic Hansen method, so be patient.

GA versus Classic Hansen
It’s not “either or”, it’s “try both”. For different datasets the techniques can come up with different fitted values – and that’s a feature not a bug. All fitting requires a “utility function” which defines whether you are getting better or worse. GA aims for minimum count of wrong-in and wrong-out, with minimum radius. Classic has an exponential penalty for something that’s deeply wrong in or far wrong out. That’s a great idea … until the penalty forces the fit to a strange region. If you are handling a “normal” material and you end up with δD of 12 or 22 then that might be a problem with one or more wrong ins. If you put a “-“ next to a very wrong in you might then find a reasonable fit. This is telling you something. That wrong in might be a measurement error, or some specific chemical interaction (e.g. acid/base) that HSP can’t know about. So think about what’s going on – you might learn something interesting.

To be clear, we are not saying “ignore inconvenient data points to get a good fit”. Instead we are saying “something interesting is going on, so find out what it is”.

The OB Fit (Optimal Binary)
A team led by Prof Dietmar Lerche of LUM GmbH and Prof Doris Segets formerly at Friedrich-Alexander-Universität Erlangen-Nürnberg and now at U Duisberg-Essen created an objective algorithm for fitting numerical (rather than 0-1 or 1-6) data. The reason for the method is discussed in the eBook. Briefly, the data are sorted from best to worse (if the Good is Small option is selected then the sorting is in reverse order) and given numbers 1 to N from best downwards (the reasons for this will become clear). Then a Sphere is calculated assuming that solvents 1 and 2 are Good. Then a Sphere is calculated with 1-3, then 1-4 and so on until a Sphere with all solvents but one are Good. Then the distances between consecutive values of the HSP from each calculation and the step with the lowest distance is seen as the Optimal Binary value – i.e. including all up to that value as Good and all after as Bad is the best possible fit. The logic is that as you go from 2 to 3 to 4 … good solvents you should be achieving a more and more stable fit … till you go too far and start including bad solvents that take the fit into worse regions.

A graph shows you how the ΔD, the distance between consecutive fits, progressed by including more and more solvents. Moving the mouse over the graph gives you a readout of the values. You also get a table of the calculated HSP values for each number of “good” solvents and the ΔD values. If the Optimal Binary fit makes sense to you then the task is finished. But if you wish to explore alternatives, select the Split High/Low option and enter a score which you think best reflects the divide between good and bad. This option only works for “Good = High” datasets. You will quickly build up a sense of whether the automatic OB was good or whether human insight is superior.

Note that during the calculations the Scores systematically change but are restored at the end. If you save after fitting, you get the fitted values included in the saved file (ready for when you re-load) but your original data values are saved rather than the binary set used to calculate the HSP.

The Fit Explorer
If you have a good fit, then there is nothing to explore. But if you have a few Wrong In or Wrong Out values, or the fit looks odd, you might wonder if, say, one of the experimental values is wrong or, if it’s not wrong, that there is some special chemical effect causing the fitting problem.

The Fit Explorer lets you explore your (Classic) fit in 3 ways.
1 Remove. You set up a range of RED values between From and To where each solvent in that range is swapped from whatever its current score is to “-“, meaning that it is removed from the fit. The resulting table of results and the graph showing the ΔD, the Distance between this fit and the Reference fit. If, for example, 1 solvent, when removed, gives a large change in the fit, with, say, a smaller radius and/or fewer Wrong Ins (WI), Wrong Outs (WO) and Wrong Total (WT = WI + WO) then you can re-check that solvent for an error, or think through what chemical interactions might be causing the problem.

2 Swap. This is more drastic. Instead of removing the solvent, it swaps each (within your chosens From:To range) value to its opposite. This lets you see if there is a serious error with one of the solvents where you miss-called it Good when it was Bad (or the other way round). Again you can find which solvent has the biggest impact and re-check the experiment or think about chemical interactions.

3 In:Out Balance. In the fitting algorithm, the penalty for a Wrong In inside the sphere by a distance X is the same as that for a Wrong Out outside by the same distance X. In each case, the penalty gets stronger the larger the value of X. But maybe your judgement is a bit skewed and maybe you should penalise Wrong Ins more strongly or maybe penalise Wrong Outs more strongly. When you select this option, the balance changes from 0.5 through 1 to 2, where 0.5 skews the penalty strongly against Wrong Ins, so forces the Radius to be smaller to avoid them, and 2 skews the penalty strongly towards Wrong Out, so forces the Radius to be larger to avoid them. When the balance is 1 we have the standard. Again you can see the impact on ΔD, R and the WI, WO, WT values.

What do you do if the fit looks rather better away from the standard value of 1? You can rethink your scoring system to be a bit harsher on those solvents you say are Good or a bit softer on those solvents you class as bad. This is similar to changing between 1, 2, 3 as “Inside” when you have a 1-6 scoring system.

Note that we aren’t trying to cheat with our values. Sometimes bad fits are just bad fits. We can’t/mustn’t change experimental values just to give us a nice-looking result. The aim is to explore why the fit might not be good so you can focus your re-checks on just a few solvents, identify specific chemical interactions or identify issues with your scoring system. 

Units and default temperature
The units of the HSP values and the Radius are as (Joules/cm³)½ which are equal to MPa½. The commonly used Molar Volume (MVol) is cm³/mole. The default/standard temperature for quoted HSP values is 25ºC.

Adding solvents to your list
It often happens that you have a list of solvents and want to add another. It would be very inconvenient to have to look up the HSP of the new solvent and to type them into your list. If you click the Show Master Dataset option then the 3D diagram is replaced by the master list of solvents supplied with HSPiP. (You can see the “official” list or, by checking 10K, the entire database of 10,000 molecules). If you double click (or Alt-click) on a solvent then the HSP (and MVol) parameters are added to the end of your solvent file. To hide the list either de-select Master List or click any of the calculation buttons.

The dataset contains a lot of parameters. The Params button gives you a brief description of each parameter.

As the solvent list is so long, it is helpful to be able to use the Search tool to find the solvent you want. When the master list is visible then Search applies to this list, not to your current solvent list. As soon as the master list is closed then Search applies to your current solvent list. 

If your list is the Master Dataset then you can also search by CAS number and formula. The search also checks for alternative names. For example a search for Hydroquinone (which is not a name shown in the Master Dataset) finds 1,4-Dihydroxybenzene (1,4-Benzenediol).

Starting a whole new set of solvents
If you already have a reasonable list of solvents then adding/deleting a few for a different experiment is simple. But if you have a very different set of solvents, it’s often easier to do File New (or Ctrl-N) and start with an empty table. Creating a fresh solvent list using the trick in the previous paragraph (the Master list is automatically opened) is quick and efficient.

A note on “decimal separators” – 1.234 v 1,234
The program is designed to be used internationally and the .hsdx files are a useful method for exchanging values. Different countries use different decimal separators and this can lead to problems of interchangeability. Therefore these files, and the on-screen tables are shown in “.” format (1.234) even if your computer uses “,” (1,234). If you type in a number as 1,234 it is automatically changed to “.” Format. 

When you copy tables or have data automatically put onto the Clipboard it is in “point” format and Excel will be confused if you paste it in directly if your decimal separator is comma. If you click the DPC button it will convert all the decimal points into commas so that Excel will recognise the data as numeric.

Copying/Pasting HSP
The more you use Sphere, the more you find yourself wanting to transfer HSP values from one part of the program to another. Wherever it makes sense, if you click on some HSP (within a table or within a set of 3 HSP values) and click Ctrl-D (for Duplicate) and Ctrl-P (for Paste) you can transfer the HSP values and, where relevant, the Molar Volume as well. It’s far easier than having to type them in from memory! We use Ctrl-D and Ctrl-P because you might want to use the conventional Ctrl-C and Ctrl-V for conventional Copy/Paste activities.

For copying a Full line of data from the Master database, use Ctrl-F.

Graphical output
The default setup for the 3D plot is that D varies from 10 – 22.5, P, H vary from 0 – 25. This gives you the classical spherical plots and covers a good general range. For specialist applications you can choose to change the D-min down to 0, but always with a fixed range of 12.5. P-Max and H-Max can be varied over a wide range, always with a minimum of 0 to suit your application. The options may seem somewhat odd, but having tested the application with numerous data sets covering a wide range of different applications, this seems the best mix of power and convenience. With different scale values then, of course, you get non-spherical plots. Remember, the plots are only a visual aid so don’t get too worried if they are elliptical instead of spherical. Changing any of these graphical parameters has no effect on the calculations.

You can click and drag the mouse to change the orientation of the plot. It will take some exploration before you are confident of what you are seeing in the 3D view. If you press the Shift key whilst doing this then moving the mouse zooms the 3D view (you can also use the Mouse Wheel). If you press the Ctrl key whilst moving the mouse then you can pan the graph left/right and up/down. Just experiment with a plot and you’ll quickly work out how to move around in 3 dimensions. 

Anytime you want to bring the 3D view back to normal, click the 3D Reset button below the 3D graph.

Sometimes you want to see just the Inside solvents, sometimes just the Outside. And sometimes it’s useful to have a label on each 3D element to tell you where your solvent is – the label can be either the number (less cluttered) or the name (more cluttered but more direct). You can choose from each of the 9 possible options to get the view that is most helpful to you. The font used for text or numbers can be changed from V Small through to V Large.

And you can choose a 10th option – the minimum sphere that encloses all the Inside solvents. This is handy when you are checking for a property (such as reactivity) where being inside is necessary but not sufficient. In other words, many chemicals might be inside the sphere but don’t (e.g. for functionality reasons) react with the target. So a classic Sphere calculation tries to minimize the number of these “wrong in” compounds, even though they aren’t strictly “wrong”.

The 11th option, “Data only” shows just the data points without the Sphere but with the green dot in the middle.

Finally, the 12th option, “Good-Bad only” shows just the Good data as solid blue spheres and the Bad data as solid red cubes, irrespective of whether they are “in” or “out” of the Sphere.

For those who like triangular graphs we’ve added the Teas plot, named after Jean Teas its inventor. It simply plots δD/(δD+δP+δH) along one axis against δP/(δD+δP+δH) on the next and δH/(δD+δP+δH) on the third. Although this is a neat way to condense 3D data into 2D, there is no scientific significance to the plotted values! A perfect Sphere with all “good” inside and all “bad” outside can look a muddle in the Teas plot. However, some people find it visually useful. As a visual aid, the computed centre and radius are plotted using their own (δD+δP+δH) value along with the “bounding circle” and its centre. Again these have no great scientific significance. When you move your mouse over the Teas plot you get either the % δD, %δP, %δH or if you are near a solvent, the actual δD, δP, δH and the solvent name.

Identifying individual solvents
Moving the mouse over the 3D plot shows the name of the solvent. Identifying a 3D element from a 2D screen is a somewhat complex task so the response can be somewhat slow if there are a lot of solvents. For the full data set the technique isn’t 100% reliable so some solvents come out as “Unidentified”.

To see a few solvents more clearly, if you select one or more solvents by clicking on the left-hand edge so that the whole line is highlighted, and then click the Show Selected option then when you plot the Sphere, the solvent(s) will be shown in orange in the 2D and 3D plots. If you select either the Name or No. option then only the name (or number) of the selected solvent(s) will be shown in the 2D and 3D plots. This trick can sometimes be useful for identifying interesting features in your data.

Finding a solvent in the list
If you have a long solvent list, it can be tricky to find a particular solvent as you might have a different naming convention from that in the list. If you know the standard Hansen number for a solvent (e.g. 325 for Ethanol) simply type the number into the search box and press Enter or click the Find button. If you want to find all solvents containing the fragment “pyrrol” then the table will show only those chemicals. The less you type (“pyr”) the more chemicals will appear in the table.

The searches are case insensitive so PYRROL, Pyrrol and pyrrol will each find the same entries in the list.

Note that chemicals are automatically put into “proper case” when the file is loaded. This avoids the user and/or the author from having to fuss about whether to enter ethyl acetate or Ethyl acetate or Ethyl Acetate. Whatever you enter, next time the file is loaded it will come out as Ethyl Acetate. The exception is small names such as GBL (Gamma Butyrolactone) which remain exactly as entered. Of course the program tries (and usually succeeds) to make sense of entries such as n-butyl acetate which comes out as n-Butyl Acetate and n-methyl-2-pyrrolidone which comes out as N-Methyl-2-Pyrrolidone. Please forgive the occasional glitch.

You can also search by CAS number.

To restore the whole list, click the  button.

The Double-Click method
If you know of a solvent that has a good HSP set, you might want to find solvents that are within a close HSP Radius of that solvent (e.g. to find a cheaper or safer alternative to your current solvent). To do this, simply Double-Click (or, if you prefer, Alt-Click) on your solvent, having previously entered a Double-Click Radius. The solvents are then automatically sorted by RED number with your chosen solvent, by definition, having a RED number of 0. Any solvent with a RED number of <=1 (i.e. up to your Double-Click Radius) satisfies your criterion and is shown in solid Blue in the graphs. All others are shown as hollow Blue. If you have too many “Inside” solvents, reduce the Double-Click Radius and try again.

If you have a target HSP that is not included in the solvent list, go to the bottom of the table and enter a D, P, H set in that empty row. You can add a Number and Name if you wish, but if you don’t they will automatically be assigned “0” and “Target” when you Double-Click.

Temperature effects
HSP change with temperature according to the formulae:
d/dT δD = -1.25a δD
d/dT δP = - a δP/2
d/dT δH = -(1.22 x 10-3 + a/2)δH

Unfortunately, a the thermal expansion coefficient is complicated and even more unfortunately, for many chemicals we don’t have data for a or its temperature dependence. So it’s not easy to get accurate values at different temperatures. Earlier versions of HSPiP attempted to use experimental or predicted values of α but this was not a great success and has now been removed. If you click the Temperature menu option (°C) you can select a temperature and a default value for a. Clicking Calculate shows the change in HSP. You can then do Sphere fitting with these revised values if your experiments were done at your chosen temperature. The standard temperature is assumed to be 25ºC so if you enter this value you just get the plain value. As these calculations aren’t amazingly accurate we round the temperature to the nearest integer value.

Pressure effects
If you have solvents at, say, the bottom of an oil well, pressures can be a few hundred bar, in addition to temperatures being relatively high. The equations for P effects are basically the same as T effects (there’s a subtle difference in the δH equation), with the compressibility β replacing the expansion coefficient α. It seems that compressibility per bar is about 1/7 of the expansion coefficient per °C. So the calculations simply pretend that the P effect is a negative offset to whatever temperature change is specified. This cannot be accurate, but we have so little relevant data it’s the best we can do. It turns out that for a typical oil well at a few hundred bar and, say, 70°C the HSP are the same as room temperature and normal pressure!

Diluents in your test samples
Sometimes a polymer or pigment comes with X% of solvent which cannot be removed before doing the Sphere test. If the sample is tested as Y% in the solvent (e.g. a polymer might be tested as soluble/insoluble at 5%) then the HSP of the test solvent is diluted by a certain %. For example, if the polymer’s solvent is 50% then to have 5% of polymer you also have 5% of that solvent in the test vial.

To correct for this, you add an extra line to your .hsdx file, with the solvent named as Diluent or Dilutor or Dilution (whichever makes more sense to you – it must start with DILU), in the HSP columns you enter the known value of that solvent, and in the Score column you enter the final % of that solvent. The Sphere fitting automatically adjusts the HSP of the overall test solvent (based on the weighted average of their HSP – just as in Solvent Optimizer). Usually the effects are small, but the feature is added for those who think it might be a problem for their particular case.

ESC Alert
Environmental Stress Cracking (ESC) is a complex but important subject involving the interaction of (bad) solvents, stress and the polymer. When the ESC alert option is selected the solvents are colour coded depending on their tendency to cause ESC. This Help file isn’t the appropriate place to discuss what the colour coding means, so please refer to the ESC chapter in the eBook.

Solvent mixtures as “solvents”
Sometimes you need a “solvent” with a specific HSP for testing the Sphere but can’t find a suitable single solvent. You therefore need to make a mixture with the desired values. To make this easy to do, the “+Sol” button in the Solvent Optimizer transfers the HSP value of whatever mix you have created in the Optimizer over to a new line in the Sphere solvent table. 

Grids
An alternative way to create a set of solvents for the Sphere method is to use mixtures of pairs of solvents. The Grid option allows you to choose pairs of solvents, combined in a chosen number of Grid Steps and by clicking the Create button automatically generates the combinations and shows them as a plot in 3D graph.

Rather than use a full solvent name it is best to use an Abbreviated name. The HSP values can be put into the rows via the normal Ctrl-D from a master list and Ctrl-P into the appropriate rows.

The solvent choices can be loaded and saved as .grd files.

As a further option an AutoGrid can be created that is targeted to a particular area specified by the Target Zone inputs. By choosing Num. Experiments you intend to make and the Grid Steps this automatically works out the Num. Pairs to be created. The algorithm takes all the solvents currently in the Solvent Optimizer (as a convenient source of practical solvents) and examines each pair of solvents to see if they are useful for the Grid – i.e. they produce a scan line that crosses the target zone. If the Centered option is chosen then there is a bias towards scan lines that start and end on either side of the sphere.

It has proven very hard to decide on an optimum AutoGrid algorithm. But what is clear is that more important than the algorithm is the choice of solvents to be used! In other words, please put a lot of thought into the range of solvents within the Solvent Optimizer. It’s a good idea to carefully create a special Grid set which covers a good range of Grid space without too many duplicates. So there is no point in having both hexane and heptane in your solvent list because if a hexane:propylene carbonate scan line is good then it’s likely that the AutoGrid would also find that a heptane:propylene carbonate scan line would also be good – whereas it adds no real new data.

Please note that the grid is merely a way to do the boring work of setting up a reasonable solvent range – but users don’t have to use it blindly.
•	The user can easily delete points they don’t like and, if they want, add some pure solvents in key points. This is done in the main table, as usual.
•	The user has to check for miscibility and take into account MVol effects with, e.g. swelling.
•	The user can move the ranges based on their intuitions of where the test material will be.
•	It can be used to refine the radius if a solvent close to the middle is chosen as one of each pair.

Utilities
We’ve already mentioned the Force Fit, the Teas plot and the Temperature utilities. The Dist utility lets you calculate the distance between HSP values. Each time you change one of the values, the Distance is automatically updated.

The Adh/Visc utility implements the Adhesion and Viscosity calculations described in the eBook. If you are interested in polymer/polymer adhesion and polymer solution viscosity you will first need to read the section in the eBook which describes what is going on. Tables of typical values for the key parameters are included in the eBook. The calculated values are automatically updated each time you change an input parameter.

The Evap utility gives you the following useful numbers: 
•	Vapour Pressure at the given temperature
•	Relative Evaporation Rate v nBuAc = 100
•	Relative Evaporation Rate v Diethyl Ether = 1
•	Absolute Evaporation Rate in µm/min/cm2
•	Absolute Evaporation Rate in mg/min/cm2

The inputs are the Molar Volume and MWt of your solvent, the temperature, the wind speed (which affects absolute, not relative rates) and the Antoine Constants, AA, AB, AC (in units that give the vapour pressure in mm/Hg). The Antoine Constants can be obtained from standard databases such as Yaws or can be estimated by Y-MB using the SMILES input. The constants for the two reference solvents are shown for convenience.

The outputs show the vapour pressures of your solvent and the two reference solvents, plus the RER with respect to those reference solvents. The values for Ether are confusing because they are actually the relative time taken to evaporate rather than the relative evaporation rate. So a higher RER for nBuAc means a lower RER for Ether and vice-versa. 

You will notice that the calculated RER can differ from those in various databases (including the RER in the Solvent Optimizer). It has to be said that RER isn’t the most precise constant in any database – and if you check on various databases you often see different numbers. Real evaporation rates depend, for example, on whether the evaporating solvent cools itself which, in turn depends on heat transfer coefficients. A layer of solvent evaporating on top of some insulating layer (e.g. a foam) will evaporate more slowly than one on a metal tray. The difference is larger for faster-evaporating solvents so the measured RER of a volatile solvent may be lower (depending on thermal conductivity, air speed etc.) than predicted from the vapour pressure at a given temperature.

There is a common error in thinking that RER depends solely on relative vapour pressure. But vapour pressures work in moles so molecular weights and molar volumes are significant when you are comparing weight-based or volume-based RERs.

FindMols
The large HSPiP database containing predicted values gives you a chance to hunt for alternative molecules. In FindMols you can search in three ways.

•	Find molecules that fall within a certain range of δD, δP, δH (or δΗDon and δHAcc if you like split H-bonds) or BPt. Hopefully the way that this works is obvious.
•	Find molecules containing certain (combinations of) functionality. This is a bit more complex. Suppose you want to find Cyclic molecules containing exactly 2 C=O groups. You select 1 < C=O < 3 and check just the Cyclic box. If you wanted to refine the search to include molecules with 1 or 2 Cyclics with C=O and also with a single –NH2 group, you would change the first line to 1 = C=O < 3 and add a second line, 1 = NH2 < 2 with Cyclic also checked. If you select the BPt option above then you further restrict the values that appear.
•	Find a specific SMILES sub-structure string. For those who are familiar with SMARTS there is an option to use those as sub-strings for extra powerful searches. For reasons unknown to us, you also have to choose the SMARTS option if you are searching for silicon containing sub-strings such as [Si]O.
•	Use the SMILES input and compare the molecular fingerprint using your chosen similarity index from Tanimoto (the default), through Dice, Cosine …. For Tanimoto, typically a value of 0.85 and greater is a “good match” but for smaller molecules it’s almost impossible to get 0.85 so you need to set a lower value. Start a bit high and if you don’t get enough hits, reduce the value. Other metrics have different ranges that define meaningful similarity.

In all cases the list of predicted values is shown in a table (for “official” solvents the HSP values are official and many of the values are real data).  The list you create is automatically placed on the Clipboard in a format that is easy to paste into Excel. If you want the list as a .hsdx file that’s then automatically imported into HSPiP, check the HSDX Output option. You can choose to search in the standard HSP list or by checking the 10K option, the entire database. You can also choose whether to limit your search to a maximum of 200 in case your criteria are too broad. You can opt to exclude molecules containing N, S, halogens etc.

Optimizing
If you want to find a pair of solvents or a complex mixture of solvents to match a particular HSP then you can use the O button which brings up the Solvent Optimizer form, with the target solvent automatically set to the solvent you have currently selected. To transfer solvents from the main form to the Solvent Optimizer, select one or more solvents by clicking (or Shift-clicking or Ctrl-clicking, as per any Microsoft-style table) on the “selection” box on the left-hand edge of each solvent, then Ctrl-Click (or Right-Click) on the text of one of the selected lines and, after a message appears for you to confirm that this is what you want to do, the solvents will be added. This isn’t the easiest of things to get right first time, but Ctrl and Shift are used for many things by Microsoft and we’ve done the best we can.

Polymers
For dealing with polymer issues, click the P button which opens the Polymer form.

Do It Yourself (DIY)
To generate HSP values from your own chemicals and to investigate a whole range of interesting properties such as activity coefficients, HSE “read across” and solubilities, click on the DIY button.

HPLC, IGC, GC
You have a range of chromatography tools ready to use.

DPC
When you copy tables or have data automatically put onto the Clipboard it is in “point” format and Excel will be confused if you paste it in directly if your decimal separator is comma. If you click the DPC menu item it will convert all the decimal points into commas so that Excel will recognise the data as numeric.

Structure to SMILES
Although many users have access to their own structure-drawing program in order to produce their own SMILES strings for Y-MB, others have asked for the capability to be part of HSPiP, with no need to download any software or do anything on-line. Creating a great structure-drawing routine is hard. Instead, we have packaged the amazing JSME (JavaScript Molecule Editor) within the installer and it runs on your local drive with no access to the internet. It is courtesy of B. Bienfait and P. Ertl, JSME: a free molecule editor in JavaScript, J. Cheminformatics 5:24 (2013) and is used with their kind permission. The JSME app is very easy to use and only a brief set of Help instructions are provided below the app itself. There are two buttons that allow you to copy the SMILES. In both cases you have to do Ctrl-C to extract the SMILES when it is shown. This is because JavaScript runs secure (sandboxed) code and is not allowed to place things onto the Clipboard.
JSME lets you choose X as an atom so you can draw a Polymer SMILES directly.

Other tips and tricks

When you File Save a dataset it's a good idea to name it as the polymer (or whatever) that is being tested. If you need to remind yourself of the D, P, H, R data for that polymer, simply load it and press Calculate.

You sometimes need to calculate the Distance between two HSP. Click the Distance menu item and each time you change a value the calculated Distance is updated. This Distance is, of course, the square root of 4(δD1-δD2)2 + (δP1-δP2)2 + (δH1-δH2)2.

For a permanent text record of the solvents, their RED numbers etc., click the Capture to Table icon. This pastes nicely into programs such as Excel. For consistency within Excel, the “*” designations for Wrong In or Wrong Out are removed – otherwise Excel interprets the RED column as a mixture of numeric and text data. Note, too, that if you capture CAS Number data and place it in Excel some of the numbers get automatically translated by Excel into dates. This annoying feature of Excel has exasperated many people and can’t easily be over-ridden.

If you want to print the table then use Capture to Table to place the data in Excel and use the many options there for fancy print formatting.

To remove all the Inside/Outside solvent designations in order to start afresh, press the X in a circle Clear button.

How to use Materials and Polymers
[From the 6th Edition the Polymers form has been renamed to Materials to emphasise that anyone can store the data from nanoparticles, APIs or whatever they are working with.]
The Materials table is initially filled by the data in DefaultPolymers.pds which you should feel free to edit provided you keep the simple Tab-separated file format, or alternatively you can edit it from within the program and Save it with any name you like.

We have to stress the difficulties in providing the initial Polymers table. We are often asked “why are there multiple entries for a single polymer?”. There are a few reasons. The first is the obvious one that the “same” polymer can be very different depending on purity, molecular weight, tacticity, % accidental or deliberate cross-links and so forth. The second is that a polymer can be measured for different reasons – swelling might be important for one purpose whereas full dissolution might be required for another. The third is that there are a lot of excellent data out there that are closely protected by confidentiality. If a research group has put a lot of resource into measuring the HSP of their polymers, they don’t see why others should have free access to their hard work.

For the 3rd Edition we’ve added a “reliability rating” column with ratings from 1 to 6:
1: Good to Excellent quality
2: Some improvement would be possible in data quality
3: Considerable improvement possible in data quality
4: Only useful for an estimate with great uncertainty
5: Probably should be deleted, but there may be an indication for some purpose
6: Should be deleted, but there may be an indication for some purpose

We had also included some “Further comments” that for some polymers provide extra insight to the ratings. This has been changed to “Source” to encourage users to record where their data came from.

But until the major companies get into the habit of providing their customers with high-quality data for their materials, the HSP community has to make do with this table – or with measuring the materials themselves. We are always happy to include datasets on materials to the HSPiP community. If you send them in, we’ll make sure that everyone benefits.

To close the Materials form, click the X Close button on the form.

The data are an updated version from the second edition of Dr Hansen’s book (with permission) and the “Comments” field is the classification of polymer type used there.

To help find a material you can use the Search option which works exactly as described for the solvents.

You can do three things with the material data

1 Solvent Match. When you click the Solv. Match button, the Solvents list gets sorted by RED number with respect to your currently selected polymer. The lower the RED the better the match of solvent to material. The RED can be calculated either from the arbitrary Double-Click Radius or (if you select Mat R) from the Radius of your selected material. The ordering is unchanged, just the values and the graphics.

If you select a number of materials then Solv. Match will order the solvents by the highest RED of each solvent with the selected materials. You can choose to Mat R if you want the REDs to reflect the different polymer radii, or deselect it if you want a comparison using the Double-Click Radius. Why are they ordered by the highest RED? There isn’t a meaningful way to make “averages” of REDs. Suppose, for example, that one solvent has a RED of 0 and another a RED of 2. The average would be 1, which says that this material combination is borderline compatible with that solvent, which, of course, it isn’t. It seems better to show the worst-case (in this example that is 2) to show you that this solvent will never be acceptable for combining these two materials. The graphs and 3D plot get a bit more complex as they are showing multiple pieces of information, but you should get the hang of what is going on. Selecting multiple materials is the same as selecting multiple files in Windows Explorer: Shift-Click selects all polymers from the previously selected polymer to the one where you Shift-Click; Ctrl-Click simply adds each new polymer to the selection. This multiple material selection trick also lets you see the different material sphere overlaps.

To help visually, any solvent that is inside any material sphere is coloured solid blue, all those that are outside all spheres are coloured solid red.

When you click Solv. Match, some key data are placed in the text box on the main form. If you have just one polymer then its name and HSP are shown. If you have multiple polymers then you get their names and HSP plus an estimate of the Junction value – the sweet spot which would define the solvent most likely to interact well with each of the polymers.

You may prefer to select the Wireframe view so you can see inside your different polymer spheres.

2 Material Match. First select a solvent from the Sphere form. Then click the Mat Match button. The materials will now be ordered with respect to that solvent’s RED number with respect to each polymer. Again the RED number depends on which definition of R you choose.

3 Double click materials. When you double-click (or Alt-Click) on a material, the materials get sorted by their degree of spherical overlap with your target. You get two values for each material. The first number is the percentage by volume of your target material that is occupied by the other material. The second number is the percentage by volume of the other material that is occupied by your target material. Why two values? A material with a small radius might be entirely within the radius of the other material. So the first would overlap by 100%, but the second may (if the difference in radius is large) only overlap by 30%. Clearly if either figure is close to 100% you can assume that the two materials would be mutually compatible and if both figures are low then you can expect that they could form two phases on mixing.

The method of sorting uses the highest overlap in either direction with a sub-sort depending on the overlap in the opposite direction. So 100 / 60 is higher than 100 / 40 but 90 / 100 is higher than 100 / 60.

If you have a target material, not included in the database, then you can enter it in the bottom row of the polymer table and double click on it.

If you want to restore the view to original, click the Clear X in a circle button.

If you update your material table with new or added values, then you can click the Save button to create your own .pds file. You can also click the Load button to load a different material data file.

The Theory button takes you into the form that describes the basic Flory-Huggins solubility calculations for polymers, as described in the eBook. Also included is Flory-Rehner theory of the swelling of cross-linked polymers.

By clicking the O Optimizer button you automatically open the Solvent Optimizer as described in the Optimizer section.

Finally, by clicking the Copy to Table button you can place the contents of the Materials table on the Clipboard for pasting into e.g. Word or Excel.

If you want to print then use Copy to Table to place the data in Excel and use the many options there for fancy print formatting.

How to use the 3DO
The 3D-Optimizer is a more general form of the Solv. Match option provided in the Polymers form, with some key added functionality. The discussion here focusses on the default dataset you will find when you first open it, Components.3DO

You have a set of Components that might be polymers, APIs (Active Pharmaceutical Ingredients), particles. You also have a set of Ingredients that might be solvents, plasticizers, excipients etc. The Ingredients set is brought in as a standard .hsdx file, which you can build from scratch, convert from a .sofx file etc.

The default view shows the Components with their individual radii, all the Ingredients as blue spheres (if inside any of the components) and red cubes (if inside none of them). There is also an orange Join point showing the sweet spot between the components where an ideal ingredient would be equally compatible with each of the components. The Wireframe option allows you to see Ingredients inside the Component spheres.

You can turn Components on and off with the checkbox at the end of each row.

As you move your mouse over the Components and Ingredients, their names and HSP values automatically appear. You can turn the 3D view with your mouse, Ctrl-Drag to pan the view and Shift-Drag (or Mouse-Wheel) to Zoom. The 3D Reset restores the default view if you get lost.

Now Click on one of the Ingredients. Its name and HSP appear in a text box and the Distance to each of the Components is added to the table. Now Right-Click on another of the Ingredients. Its name and HSP and Distances also appear (and the little Help text disappears), but now there is a line between the Ingredients with a cyan sphere representing (on default) a 50:50 blend. Slide the slider and the blend changes. The Distances of the mix from each of the Components are updated.

This ability to explore blends in 3D is a powerful way to think of how to optimize ingredients to work with a complex set of components. You might want the blend to have a low Distance to each component or, perhaps, a low Distance to two of them and a large Distance to a third.

To remove the Mix information, click the Clear button.

Adding/Deleting Components

Deleting is the same as in other forms – just select the relevant row(s) and press the Delete key.

You can add new components by typing in their values, by the standard Ctrl-D(uplicate) and Ctrl-P(aste) trick used throughout HSPiP.

As it is likely that you would want to add some Components from the Polymers form, you can highlight one or more polymers then right click for them to be automatically appended to the 3DO table – just like the method for adding solvents from the Master Database to the Solvent Optimizer. 

Although there is no limit to the number of Components, it makes little sense to have more than a few of them, so the size of the table is deliberately small.

Loading and Saving
The files are the usual simple tab-separated text format used throughout HSPiP, with a .3DO file extension. They are just Name, δD, δP, δH, Radius. Don’t try to include too many Components, the 3DO doesn’t make sense with too many.

How to use Solvent Optimizer
You may have found a great solvent for your system but it is too toxic or expensive to be used in your application. No other single solvent is good enough. Or you may have a polymer for which you want to find a good solvent mixture. In both cases you click the Optimizer button and the Solvent Optimizer form appears with the HSPs of your great solvent or your polymer automatically set as the Target for your optimization. You can, of course, enter values manually into the target and add a Radius value for use in various calculations.

The aim is to find a mix of solvents that closely match your target. Note that the mix within Solvent Optimizer is expressed in terms of Volume %.

The Distance from your solvent to your target is automatically calculated and, of course, you can sort the solvents by this distance by clicking on the column header. This is a very easy way to identify the closer solvents.

The default solvents that appear in the Optimizer are “friendly” solvents – ones that are well-known to be cost effective, much used, less harmful, requested by HSPiP users, etc. (though not necessarily all three). You can edit this list from within the program (recommended) or by directly editing the file OptimizerSolvents.sofx (but make sure you keep a backup!). You can also Load/Save any number of .sofx files to suit your own purposes. Similarly, there are files related to cosmetic/pharma needs such as PermeationEnhancers.sofx. If you select the Param. Load/Save option then your parameter sets are loaded/saved. This is an option because sometimes you don’t want to override your current settings when you load a different .sofx file, though it’s probable that you will want this option set to its default “on” setting most of the time.

The Convert option allows you to load/save as an .hsdx file. The Open with Append option adds your new file to the current one. This is not a merge and there is no attempt to remove duplicates because you might want to compare/contrast/decide between different values. Click on the Name column header to make it easy to find entries with duplicate names. Because the same solvent might be stored under a different name (e.g. acetone might be stored as 2-propanone) you can click on the CAS # column as an extra check for duplicates.

If the XC option is selected then eXtra Columns of data appear – for BPt, FlashPt (in °C), VP@25°C, MPt and MWt. These values are supplied in the DefaultSolventOptimizer dataset and are also copied over from the Master Dataset if the Right-Click trick (next paragraph) is used. These values are provided for convenience only – the SO does not use them in any way. It is the user’s responsibility to check that the data are accurate – especially for FlashPt which has legal ramifications for safety.

If the Wt% option is selected then the Wt% and ρ columns become visible. Any blend that contains Vol% values is converted to Wt% via a calculated density (ρ) calculated as ρ = MWt/MVol. The MVol is always known. Some tables have no MWt values so the density is set to 1. Note that you cannot enter Wt% or ρ values to do the reverse calculations (the columns are set to Read Only).

You can also transfer solvents from the master table to the Solvent Optimizer. Select one or more solvents by clicking (or Shift-clicking or Ctrl-clicking, as per any Microsoft-style table) on the “selection” box on the left-hand edge of each solvent in whichever main table you want to get them from, then Right-Click on the text of one of the selected lines and, after a message appears for you to confirm that this is what you want to do, the solvents will be added to the Optimizer.

Some users like the option of loading an .hsdx file into the Optimizer or to save an Optimizer file as a .hsdx for importing into the main Sphere program. To do this, click the Convert button before clicking the Load/Save buttons. Data specific to each format is lost during conversion – you only preserve the names, HSP, MVol, CAS and SMILES parameters, though during Load an automatic lookup checks if the name matches the CAS# in the master database and imports the RER and Antoine data. The Convert option automatically unchecks itself so that you don’t accidentally lose data if you subsequently save a .sofx file.

The fastest way to getting some good ideas is to press the 2 button which finds the Best Pair of solvents. The program examines all possible combinations of two solvents and finds the mix with the closest match to your Target (i.e. the smallest HSP distance defined in the usual manner using the factor of 4 weighting for D values). You get a list of the Calculated values, the Deltas between the Target and the best pair, plus the Distance which is the optimized HSP distance from the calculation.

This pair of solvents may be OK. But it may not be quite what you want. You can then start to “play”. For example, select a third solvent by clicking the relevant checkbox. Then press the O Optimize button. This now finds the optimum proportions for the three solvents. You can do this for a maximum of 10 solvents. Up to 5 solvents calculations are quite fast. For 6 solvents things slow down a lot. For 7 or more solvents the accuracy is reduced to bring the speed close to that of 6 solvents.

To help you find solvents we’ve implemented a clever idea suggested by one of the HSPiP community. If you select Show Hi-Lo then each entry in the table is coloured red if it is higher than the Target value and blue if it is lower. This makes it much easier to spot pairs of solvents which must have complementary hi/lo values in order to result in a match to the target. Hi-Lo is not shown for Donor/Acceptor as it would require multi-coloured options.

The Best 1 or 2+ option allows you to specify an extra distance (e.g. +0.5) so that when you click the 2 button (this also applies to the 1 button described below) not only do you get the best blend but you get a list of blends which are within your chosen extra distance from the best blend. This list is placed on the Clipboard ready to paste into, e.g. Excel. This capability is very useful. When you get an automatic optimum blend you don’t know if this is much better than alternatives or is within a few decimal points of many others. By looking at the Best+ list you can quickly identify blends that are good enough but, perhaps, with solvents that you prefer.

Alternatively, you can simply select any solvents you like and enter their % manually. At any time you can click the Calculate button. If the % don’t add up to (close to) 100% then the calculated values are shown as “err” to warn you that there’s an error. You see the calculated total % shown in red. You can then easily fix the problem. As the last few % may not be too critical, the program calculates an answer if the total % adds up to between 95 and 105%. Obviously you should look at the % Check value to make sure you get to 100%.

There are two further options. The 3 button automatically finds the three best solvents. This can take some time if you have a lot of solvents, so be patient. The 1 button has two uses. Suppose you absolutely must use a specific solvent and you simply want to find which one other solvent in the list, at what ratio, gives the best match to the target. In this mode you simply make sure that the check-box is ticked for your solvent, with no % value. Clicking the 1 button finds the best other solvent. The other use for the 1 button is when you know that you must use X% of some solvent and, perhaps, Y% of another solvent and want to find one other solvent (at 100-X-Y%) that gives a good match. In this case, select the solvent(s) you want and enter its/their % values. Clicking 1 finds the best solvent to make up your blend. As described above, the Best 1 or 2+ option allows you to find other single solvents within your specified extra distance, in case the best one happens to be only marginally better than an alternative with a solvent you happen to prefer.

The Pw (PairWise) button is for those who need an exhaustive search for the best ratio of each of the possible pairs of solvents from the list. Why would you want this? One example is to make sure that you know not only which individual solvents are within a chosen distance (you find that from the Distance column) but which pairs of solvents (at their optimum blend) are within a chosen distance. This would tell you, for example, all possible solvent pairs that could dissolve a given polymer. Clicking the Pw button does an exhaustive search of all such pairs then sorts the output before placing it on the Clipboard. The output (which is often too large to be of much use within HSPiP) can then be pasted into something like Excel for further processing. Note that redundant pairs are removed. So if your list contains Acetone and Xylene, the Acetone:Xylene pair will be shown but not the (identical) Xylene:Acetone pair.
If you first select 4 or more solvents then click Pw, you get the pairwise combinations of just those selected solvents. The Solv-Distance column is the HSP Distance of the two solvents. If this distance is large, even if the solvent blend is theoretically good, you might have problems of miscibility and/or phase separation in the presence of the solute. Such effects are very hard to predict so this is an addition piece of information you can use to help judge the optimal pair of solvents for your specific application.

Tw is the Triplet-wise equivalent. Because this would give vast numbers of combinations, this works only if you have selected 4 or more solvents.

Each time you do a calculation, the results are automatically sorted in descending order of % solvent. This conveniently groups solvents together for you, otherwise it can be difficult to see what is going on. However, for those who need to keep the same order within the dataset, the NoSort option stops the automatic sorting.

The Line option assumes that you know of 2 good solvents that you have selected in the table via the checkboxes. Any solvent close to the imaginary line connecting those 2 solvents must also be a good solvent. So the L option calculates the distance between each solvent and the line and sorts by that distance (column labelled as L-Dist.). This can sometimes suggest alternative solvents you might not have thought about. Any solvents that are outside the sphere that encloses the two solvents and the line between them are automatically given a value of 99, otherwise solvents that are mathematically close to the line that extends beyond the two solvents would be included.

For those who like to explore the world of split δH, the D/A option shows the δHdonor and δHacceptor values and optimisations use these values instead of δH alone. The formula used for blends and for distances is via simple summation. This is certainly not the scientific ideal, but until that ideal is properly understood, the simple summations are at least indicative of Donor/Acceptor trends.

As a guide to whether the chosen solvents might be miscible, the MChk button does a miscibility check on each pair of solvents. See the Miscibility section of DIY to understand the limitations of miscibility calculations. And remember that whilst it’s difficult to predict the miscibility of a solvent pair, it is almost impossible to predict the miscibility state of 3 or more solvents. So the button is a quick guide only, for your convenience.

When you press the Copy to Table button, your target, the deltas and the solvents are all placed onto the Clipboard for convenient pasting into Word/Excel. There are two of these buttons. The Single icon version copies only the Selected solvents. The Double icon version copies All the solvents – use whichever is more useful to you. In both cases, your current parameter settings are included in the copy.

If you want to print then use Capture to Table to place the data in Excel and use the many options there for fancy print formatting.

Polymers that match the Calculated values
Clicking the P button opens the Polymers form, with the polymers sorted according to their closeness to the Calculated values. If these aren’t valid (e.g. because % values are wrong) then the Target values are used instead.

Viewing the Solvents and Target
By clicking the Sphere icon you get a 3D plot on the main form of your optimizer solvents and the Target. The radius of the Target is set by the Double-Click R on the main form. What you see depends on your choice of view on the Sphere form. To see just your chosen solvents, select “In only”, to see them with their names, select “In + Name” and so forth. If you select “In + No.” the number is simply the row number of the solvent. You can change the view till it shows you what you want to see. The colour codings/shadings are as in Sphere: a solid blue sphere means your chosen solvent is inside the sphere, an open blue sphere means your chosen solvent is outside the sphere and so forth. The “Min” options don’t apply to this view. No calculations are done – this is simply an option to view the solvents in this context.

Weighting
If you want to discourage (but not totally exclude) the use of one or more solvents, then you can lower their Weight value from 100%. A value of 50% will be reasonably discouraging, a value of 0% will be strongly discouraging. This can help you include other considerations (such as solvent cost) in your optimization.

The weighting function simply adds an extra “distance” to the calculations, depending on the % of the weighted solvent and its weighted value. You can see the value of this extra distance in the Weight error box. A large value means that the optimization is fighting hard to avoid using your weighted solvent(s) but doesn’t have a good alternative. 

Limits
The Weight column can be used in another way. If a value such as L30 or L50 is placed in the column then the Optimizer will never allow more than 30 or 50% of that component in a mixture though, of course, if the Optimizer found that the optimum was, say, 20% the Limit value is ignored. This is very useful for, say, cosmetics formulations. If you are not allowed to use more than 50% propylene glycol in a formulation then place L50 in the Weight column for propylene glycol and the Optimizer will not explore formulations with more than 50%. You can place L values on all/any solvents. It is your responsibility to ensure that the L value restrictions allow you to achieve a 100% formulation, otherwise the program cannot find a meaningful optimum and will sometimes give peculiar results.

Temperature Effects
There is a little-known phenomenon of polymers having reduced solubility at higher temperatures. This can come about because a well-matched solvent can change its HSP with temperature and become mismatched to the polymer. This in turn happens because the thermal expansion coefficient of the polymer is much less than that of the solvents. By clicking the ºC button the temperature calculator opens and when you set the temperature and click the Calculate button the new distance from the Target is calculated.

Relative Solubilities … and optimizing with Bad solvents
Although it’s clear that a large Distance from the Target means less solubility, it’s helpful to get a feel for what these Distances mean. If you click the Solubility Graph button, having entered a Radius for your Target (start with 8 if you don’t know anything different) then a graph appears showing Relative Solubility v Distance. Note that for polymers (which are much more complicated) this might better be considered as solubility of the solvent in the Target (polymer) not solubility of the Target in the solvent. The reason for this distinction is described in the eBook chapter on polymer physics. But it’s more natural to think of it as target in solvent, which is why the Y-axis is labelled that way. As you move your mouse over the data points the data on the individual solvent appears. The formula used for the calculation is simplified: 

RelSol=Exp(-8*Distance²*Mvol/(3000*Radius)

it simply calculates the Chi value term based on MVol and Distance which in turn relates to solubility in an exponential manner, with a Distance of 0 giving a Relative Solubility of 1. Despite these simplifications, this graph is a handy intuition builder and a good first approximation to the reality of polymer swelling by different solvents or for the solubility or dispersability of solids and particles.

By viewing the Relative Solubilities graph, and selecting the appropriate Radius you can see which are your Bad solvents. Sometimes you want to use Bad solvents to create a good blend. If you click the 1, 2 or 3 buttons you will usually get a fit that includes one or more good solvents. By selecting the Only use bad solvents beyond R option, all the good solvents are excluded from the fitting algorithm and you get the best fit possible using the worst solvents. This may sound a strange thing to do, but the option was added at the request of the HSPiP user community. If your Radius is set too large there may not be enough solvents available to fit – in which case the program gives you a warning of the problem and you will have to reduce your Radius to allow a few more bad solvents the chance to partake in the optimization.

Advanced optimization
Sometimes there is a good reason why you must have one or two components at some fixed percentage of the total mix. If you enter the letter F (for Fixed) before the percentage then that component remains unchanged and the other components are adjusted by the optimizer to give the best result with that fixed constraint. The program will not accept more than 2 Fixed components.

When you click the 2, 3 etc. buttons the optimiser can sometimes choose a solvent that you really don’t want to use for this particular purpose. If you Ctrl- click that solvent then it turns to gray and is no longer included in the 2 optimization (or in any of the other optimization calculations). If you want to include it again then Ctrl-Shift-click once more and it becomes normal. 

Optimizing to RED=1
Sometimes you want to find a solvent blend right at the edge of the Sphere. This simply means you need a Distance equal to the Radius entered in that box. However, there are many possible blends at the radius boundary so the Optimizer needs additional information to find a relevant blend. First, check the RED fit option. Now enter values into the 3 boxes below the Target. These represent “delta” values, differences from the Target. So values of 3, -2 and -4 would mean “find a RED=1 fit in a region of higher δD, lower δP and much lower δH. The software does its best to achieve such a match – and the option automatically applies to the 1, 2, 3 and O fits.

Because it is easy to forget that the RED fit option is selected, and because accidentally fitting to RED=1 can be a real problem, the RED fit option is not remembered between sessions. If you need it, you have to actively turn it on.

A typical example of use (and the first user request for this feature) is when you want to find extra solvents near the boundary of your test Sphere in order to define it better. You might identify that it needs some solvents in a high δD and low δdP domain and your lab doesn’t have a convenient solvent to hand so you need to create it as a blend from solvents you already have.

Solvent mixtures as “solvents”
Sometimes you need a “solvent” with a specific HSP for testing the Sphere but can’t find a suitable single solvent. You therefore need to make a mixture with the desired values. To make this easy to do, the S button transfers the HSP value of the current mix in the Optimizer over to a new line in the Sphere solvent table.

HSP in the vapour phase
The relative % of solvents in the liquid phase is different from that in the vapour phase. If you want to know the % mix in the vapour phase, click the V button. This changes your % values to that of the vapour phase and calculates the HSP of that ratio. If you are interested in the vapour phase mix after, say, 40% evaporation of your mix, run the Evaporation option and note the relative % in the liquid state at that point. Type those % to replace the original values, click the V button and you have the answer. Why does this functionality exist? Because a user needed it and it turns out to be general use and interest.

Wet-Bulb calculation and Blushing warning
As the solvent (the argument and the modeller works equally for solvent blends but it’s simpler just to say “solvent”) evaporates it removes latent heat so the solvent cools. If there is no other form of heat (so the solvent is thermally isolated), the only energy available for evaporation is the heat capacity of the air that’s doing the evaporation. If the air is at temperature Ta and the solvent is at temperature Ts then for a heat capacity of Ca, the heat available is Ca(Ta-Ts). The amount of heat lost is Lh*AmountEvaporated. The AmountEvaporated is simply the weight fraction of vapour in the air which can be calculated from Vapour Pressure at Ts and the relative molecular weights (see note below) of the solvent and the air. The Wet-Bulb temperature is found when the calculated Lh*AmountEvaporated = Ca(Ta-Ts). The calculation (especially for a complex solvent mixture) is messy but the idea is simple.

There is an unfortunate complication that the calculation reveals the “adiabatic saturation temperature” rather than the true wet-bulb temperature. For this the “psychrometric ratio” needs to be known. Famously, for water that ratio is 1 so the basic calculation gives the correct value. Each solvent has a different ratio, typically in the range from 1.5-2.5. Because there are not too many published values for these ratios, and because they are very difficult to calculate, a value of 2 is used. This produces a value higher than the adiabatic saturation temperature and generally gives a reasonable approximation to those wet-bulb temperatures that are known experimentally.

Why would we want to know the wet-bulb temperature of the solvent? This is the worst-case scenario. If you are blowing enough air over the solvent to cool it maximally, and if the heat supply from elsewhere (e.g. the substrate) is neglected then you know that your air will be reduced to this temperature at the surface of the solvent.  It may (with low air flow or heat from the substrate) be higher, but it won’t be lower.

If the air contains moisture and if the temperature of the solvent surface is less than the Dew Point of the air (the temperature at which the humidity will start to settle out as liquid water) then you will get water drops on your solvent and if this is a coating then you might get blushing. Of course if the solvent is very water compatible this won’t be a problem.

Some solvents are quoted has having a “Blush Resistance Parameter %H at 80°F”. Although this is measured using the Shell Chemical, 1960 test, it seems that this is essentially equivalent to the RH which gives the dew point at the wet-bulb temperature. The BRP box performs the calculation for you. It is indicative only.

In summary, you have a worst-case calculation. If the wet-bulb temperature is higher than the dew point (a slow evaporating solvent or a low RH air) then you cannot get blushing. If the wet-bulb temperature is lower than the dew point then you have a risk of blushing. The wet-bulb temperature box turns red to alert you to this. You have to use your knowledge of the system to see if this is a real concern or not. You can, for example, compare the overall HSP of your mixture to water to see if the distance is not too great or you can assess the air-flow to see if it is likely to be able to cool the solvent down below the dew point.

A further option lets you plot the Web-bulb temperature throughout the evaporation and show it (instead of the Ra or RED) in the table. Usually the wet-bulb temperature will be lowest as the start of the evaporation (because the most volatile solvent evaporates first) so for most users the simple calculation is all that’s required.

Remember that these calculations are a guide to blushing, not an attempt at accurate predictions of solvent temperatures which, of course, depend on air-flows and thermal flows.

Evaporation
When a solvent mixture evaporates the HSP of the mixture will change as the different solvents evaporate at different rates. If these rates are known then the calculation of the HSP during evaporation is simple. In reality, rates of evaporation are very complicated, depending on many parameters and although these are calculable in a full drying model (using Antoine Coefficients, enthalpies of vapourisation, air flows etc.) they cannot be fully included in a program like Sphere. As an approximation, Sphere takes the published RER (Relative Evaporation Rates) of the solvents and simulates a time-span (unspecified) during which the initial loss of solvent is neither too large nor too small and where a significant percentage of the overall solvent blend has been lost. The resulting data give a reasonable impression of a real drying process. For those who are interested in water as a co-solvent, the rule of thumb is that the RER=80(1-RH/100). So if the Relative Humidity is 50% then the RER=80(1-50/100) = 40. If you check the Auto Water RER option then the (1-RH/100) correction is automatically applied.

For those who prefer absolute times but can only relate them to experiments with a standard solvent, the nBuAc=100s option imposes a fixed time of 100s for a sample of nBuAc to evaporate to 90% (the usual definition, because evaporating to 100% is harder to measure). Your mixtures will then be able to evaporate in a timescale of your own choice. If you find in the calculation that your mixture evaporates to 90% in 50s, and you happen to know that an nBuAc sample in the same test device takes 60s to evaporate then you can be confident that in the same test rig your sample would evaporate in 30s.

For those who would like an estimate of the RER of a mixture then the nBuAc=100s  option provides an RERc output – the calculated RER. It detects when the solvent is less than 10% remaining then does a linear extrapolation (because the timesteps are relatively large) from the preceding timestep to estimate when the 90% evaporation occurred. Although this calculation is in the spirit of the ASTM RER measurement, it’s not entirely clear if the RER of a mixture has any official regulatory value, so please use the calculated value with due caution. If the fixed time you impose is too small then the evaporation will not have reached 90% so no RERc value can be determined; simply enter a larger value and try again. If the fixed time is too long then the evaporation is over too quickly (the timesteps are too coarse) and the RERc will not be so accurate; simply decrease the fixed time to increase the accuracy.

Finally, for those who have an idea about the air velocity and starting thickness of their solvent sample, an absolute Time calculation can be performed. Please don’t expect these calculations to be highly accurate – there are many simplifying assumptions, but they have been validated against simple test cases so aren’t too bad. Enter the Air m/s – the air velocity in m/s. A typical lab might be 0.1m/s and a fume-hood 1m/s. Enter the wet film thickness in µm then set Time as a number and units (seconds, minutes, hours). If your time is much too long for the evaporation calculation then you’ll probably see nothing on the graph – the solvent has evaporated in the first time-step. If your time is much too short then the graph will be flat – essentially nothing has evaporated. By some trial and error you should find a way to get a reasonable graph.

After setting up your solvent mixture and making sure that the RER data (either supplied with Sphere or from your own database) are available for each of the 2-7 solvents, click the Evaporate button and you get two things: a table and a graph. The table (which is automatically placed on the clipboard, along with your current parameter settings, for pasting into, e.g. Excel) shows the Total solvent, the relative % of the different solvents, the HSP of the solvent blend at each step and the distance, Ra, of the blend from your Target. Each solvent in the table is colour coded to match the graph, which is included to give a visual impression of what’s going on. When you move your mouse near any of the graph lines, you get a readout of the values. Remember, if you want to paste the Excel values from Evaporation, just click Evaporate then paste straight into Excel. Don’t confuse this with the table-copy button which copies the main table ready for pasting into Excel.

You can choose (Show RED) to show RED instead of Ra values in the table (and RED instead of Distance in the main form). The Radius for the calculation (RED=Ra/Radius) is taken from the Target’s Radius value. You can also choose the Plot Ra/RED option to include a plot of the Ra (or RED) on the graph. Finally, you can choose Show Previous to show the previous Total and Ra or RED plots on the graph so you can see how these change when you change your solvent blend. Because it makes no sense to show previous plots if you have made major changes to the plot (e.g. changing to Time or swapping between Ra and RED) you only see previous values within the same plotting mode. In both cases the previous plots are shown in a lighter shade of the same colour.

If you want to explore the behaviour at other temperatures, click the ºC button and you can set the temperature which in turn alters the HSP values in the Optimizer table. When you click the Evaporate button the RER are calculated using the Antoine Coefficients (AA, AB, AC) provided in the table. If you don’t have Antoine Coefficients for your solvent, choose values from a solvent with a similar RER. It won’t be highly accurate, but probably better than nothing. For some of the more obscure solvents that lack public Antoine data we’ve added the nearest equivalent – it’s better than nothing.

If you select the Activity Coefficients option then the RER of each solvent will depend on the activity coefficient for that solvent within the mix. The coefficients are calculated using an approximation described in the eBook.

If you want to include the Target as an influence on activity coefficients, select the option and set a value for the % of the Target in your starting mixture. Naturally the activity coefficient effect of the Target gets larger as the other solvents evaporate. The target, assumed to be involatile, also changes the slopes of the evaporation curves – the vapour pressure of the solvents diminishes as the relative % of the target increases during the evaporation.

When you’ve finished with the Evaporation study, click the close (X) button next to it to allow you to work with the full Optimizer table.

Optimizing to an evaporation or Ra/RED curve
The Optimizer can do a great job at giving you a formulation that is a good match at T=0 for your target. But suppose your target is a previous formulation which evaporates at a certain speed and/or has a specific Ra/RED curve during its evaporation. You can imagine many formulations that could provide a good match at T=0 but would evaporate much faster/slower (and therefore be a poor evaporation match) or with a very different Ra/RED curve as the different components evaporate (and therefore be a poor Ra/RED match).

The EO button activates the Evaporation Optimizer. It was requested by one large company that uses HSPiP extensively for practical mixed-solvent formulations and is provided in the hope that others will find it useful. From the nature of the problem the EO is a rather complex tool to use. So let’s go through it slowly.

The assumption is that you have a formulation that you want to match. It must be working in either nBuAc mode or Time mode as they have absolute time built into them.You should save this as a .sofx file. You will also have tested it by clicking the Evaporate button. Now click the EO button. A new form appears with only one button active, Save current as Reference. Click this to save your setup as a (temporary) reference file. This defines the relevant evaporation and Ra/RED curves for your standard.

Now click on whichever solvents you think you would like to use in an evaporation formulation. Don’t enter any % values, just select them. The more you select, the tougher the optimisation challenge but the bigger the chance of getting a satisfactory result. Also the optimisation steps are larger (cruder) the more you select otherwise the optimization time becomes too long.

If you are interested in a formulation that follows your evaporation curve, click Optimize to Evaporation and after some time (a progress bar gives you an idea) you get the best match shown. If you like this result, remember to save it under a new name (Save Optimized Set performs the same function as the standard save button on the Optimizer). If you don’t like it then simply select a new range of solvents and try again. 

This optimization is a rather complex process. For each permutation of solvents the full evaporation curve is calculated then compared to the reference curve. The sum of the squares of the difference between the two curves is calculated, though this is complicated by the fact that some curves “stop” sooner than others.

The Show Previous option is automatically selected so you can compare your curve (bright blue) to the original (pale blue). A simple Difference number is shown after each calculation. Although this number has no specific meaning for any specific case, you can build up an intuition about the quality of a fit (smaller is better), especially if you use the number to compare different solvent blends with the same master curve.

At any time you can click Reload Reference to bring you back to the original curve so you can remind yourself what you are trying to achieve.

Sometimes you want to optimize around a certain amount of one or two specific solvents. In this case (as with the standard optimizer) type an F in front of the percentage for each fixed solvent; F30 means “Fixed at 30%. Fixing one or two solvents greatly decreases the number of combinations to be tested so the optimization is rather faster and, for a given number of solvents, rather more accurate as a smaller step size is used for iterating between the various combinations.

The downside of optimizing for evaporation is that the HSP match from start to finish may not be of any use. This will especially be the case if you choose solvents that are a very poor HSP match. The alternative is therefore to Optimise to Ra Curve which finds the best mix of solvents which, whilst evaporating, trace a curve as similar as possible to the original, with the original shown in light gray and the new curve in black. This option is available only if the Plot Ra option is selected in the Optimizer. There are two issues here. The first is that the rate of evaporation may be much faster or slower than the original. The second is that the algorithm for comparing the curves becomes less and less accurate the further apart the evaporation rates are. Some attempt is made to bias the fit towards evaporation times that are better matched but this is necessarily imprecise.

Maybe it’s possible to create a combined optimizer, but it’s not obvious that this makes much sense – as the two effects are so different.

Therefore the purpose of the EO is to provide a tool that is undoubtedly of some utility, but also to seek views from those who use it as to how it can be improved.

eXtra Optimization
The powerful tools in the Solvent Optimizer allow you to create the best match based on one criterion: the smallest Distance from your target. But what about other trade-offs such as cost, safety, RER, and what about optimising to within a range?

The XO allows you to optimize to up to 3 different criteria and within ranges. It’s powerful, but power comes with responsibility – you, the user, have to provide the data to which you are going to optimize, and you do this by providing your own SolventProperties.txt file or modifying/updating the data in the default file provided.

The file must contain a minimum of three columns and 4 rows. The columns are Tab Separated format which can be created directly from, say, Excel. The first two columns are the Solvent name and CAS# and any further columns (there is no practical limit) are parameters of interest to you. The default file provides MWt, MVol, VP@25, RER, MPt, BPt, FlashPt, LogS, Cost, Health, Flam, React, User1, User2. Health, Flam and React are the NFPA 704 classification codes as one possible set of “safety” criteria. Users can imagine other criteria such as LD50.

The rows start with a Header giving the names of each column. These names are used as headers in the XO. Then you just have the values for each property. Open the default SolventProperties.txt in your favourite text editor or within Excel.

The values provided in the default file are “best endeavours” with no guarantees. This is especially true about the Cost and Safety columns. Costs can change dramatically and depend on your source of information. The Costs here were referenced to Methanol=1 and were capped at a value of 10 as costs of rarer solvents are harder to compare. And anything connected to Safety can change overnight with a new ruling from a safety body. Remember, therefore, that any optimisation based on such criteria depend on you filling in the values that apply in your area.

The properties file contains (hopefully) more solvents than you are likely to use. Within the SO you will have your own list of solvents for optimization. How do we link the two? The answer is via CAS#. So in your own SO file you have to provide the CAS# (in the Other Names column) of each of your solvents. When you click the XO button to load the eXtra Optimizer the program runs through the CAS# of the reference file to find a match. If there’s a match then your solvent is added to the XO table. If there’s no match it is ignored. So you can only optimize with solvents whose CAS# exists both in the SO table and in the SolventProperties file. This is inconvenient, but if you think about it there are few better alternatives.

For your convenience, the Optimizer Solvents file that ships with HSPiP has a version where the CAS# are provided in the Other Names column. This can be a good starting point for creating your own list. Any extra solvents you add will need you to provide the CAS#, but that’s not too hard for just a few solvents.

So let’s assume you are in the XO with your list of solvents and the properties you wish to optimize. The Distance values are copied from the SO and are updated each time you change (say) the Target value. If you delete solvents from the SO or Gray them out (Ctrl-click) to disable them, the XO table is automatically updated.

You now select the optimization criteria. From the combo boxes you can choose which of the values in the table are the criteria. You can specify a range and for each range you can specify whether the score is “YesNo” (good if in the range, bad if outside) or “Min” (the closer to the bottom of the range the better) or “Max” (the closer to the top of the range the better). You can select 1, 2 or 3 criteria to be incorporated in the optimization. You can also specify a relative Weight for each of the criteria. If you as for Min or Max and your range is 0 (i.e. min=max) then YesNo is automatically set. If your min is greater than your max, you’re asked to fix the problem.

Clicking the XO button provides a Score for each solvent based on your (weighted) criteria and scaled from 0 (best) to 10 (worst). Why is 0 best? Because in the classic Optimizer, a Distance of 0 is best and it seemed logical to keep this convention. The solvents are automatically sorted from best to worst.

As this is the first version of XO, we look forward to feedback on how it could be improved for the sorts of optimizations of interest to you.

How to model Diffusion
Diffusion is a complex topic where intuitions aren’t always reliable. This modeller gives you a versatile way to explore many aspects of diffusion, especially diffusion in polymers. The reason that it is included in HSPiP is that HSP have a significant impact on one aspect of diffusion, the equilibrium absorption/swelling amount, and diffusion phenomena strongly affect some of the methods to determine HSP for polymers, for example. These include waiting (or not) for equilibrium effects to be attained in absorption and chemical resistance tests, for example. It’s helpful to see all of this in the context of the whole complex diffusion system. Permeation rate data and breakthrough times have also been used to calculate the Hansen spheres for chemical protective gloves.

Before using the Diffusion modeller it might be very helpful to explore the Diffusion Apps on the Hansen-Solubility site. These start off with a simple model, building up to a more complex version. Once you are happy with those, the even more powerful HSPiP modeller will be easily comprehended.
 
You first have to decide if you are modelling Absorption or Desorption. Then you have to make some estimates of key diffusion properties. If diffusion in polymers were simple, you would enter just one diffusion coefficient (in cm²/s). But the higher the concentration of the diffusing solvent, the more the polymer itself is plasticized and therefore the diffusion coefficient is higher. Even this isn’t sufficient to describe the full situation. Suppose you have a rigid polymer that is at a temperature below its glass transition temperature. Up to a certain solvent concentration (which you can specify) the solvent will cause a large increase in diffusion rate. Once the polymer becomes flexible in nature (thanks to all that plasticizing solvent) the rate of increase of diffusion coefficient diminishes. Finally, the whole system is best described as a polymer solution (maybe constrained by a few cross-links) with lots of solvent and the increase of diffusion rate is even smaller. In this range the diffusion coefficient will approach the self-diffusion coefficient of the solvent as its concentration increases. The degree of crystallinity (if any) will affect the first stage, lowering the diffusion coefficient as the percent crystallinity increases.
 
The whole system is described as:
 
Drigid = D0r exp(kr x concentration)
Dflexible=D0f exp(kf x concentration)
Dsolution=D0s exp(ks x concentration)
 
Where D0r is the diffusion rate in the rigid state at zero concentration and kr is a constant expressing the rate of increase with increasing concentration. Concentration is given in volume fraction from 0-1; D0f is the lowest diffusion coefficient once the polymer has entered the flexible state, with kf, necessarily smaller than kr, expressing the rate of increase. The terms for the state resembling a polymer solution are obvious.

So to specify the full diffusion behaviour of a rigid polymer you need the 6 constants above plus two the values of the concentrations where the polymer transitions from rigid to flexible and from flexible to solution-like are found. Where can you find these 8 constants? In general you can’t, the task here was to describe the general logic.
 
Although all this is already complicated, there are more complications to come! The constants D0r, D0f and D0s also depend on the diffusing solvent. In general for comparable size a linear solvent diffuses faster than a cyclic or aromatic one (it’s better at wriggling into free space in the polymer) and in every case a branched molecule is slower than a non-branched one. Finally, if other things are equal a larger molar volume also gives a slower diffusion. There’s no possibility of providing accurate estimates for these factors. Although there are many academic papers on “free volume theory” they at best only give good estimates over very narrow ranges of polymers and solvents. 

Remember, the point about the diffusion modeller is that it lets you test out a large variety of scenarios. What we suggest is that you try values that seem to make sense, perhaps based on the low concentration values described next. This should then give you the confidence to guesstimate values relevant to your own diffusion problem. Even better is to do some simple tests with thin samples of polymer that you weigh, dip into your solvent and weigh over, say, 1 day. If you have the right thinness of polymer then the sample will be saturated over 8 hours and you can then try to match the experimental data by changing the various values in the model. Note that you automatically get the saturated concentration from the experiment so you are already off to a good start.

A Diffusion Coefficient Calculator provides an instant guide to European/FDA approved diffusion coefficients for a number of common packaging polymers. The calculator follows the summary provided in A Critical Survey of Predictive Mathematical Models for Migration from Packaging by Maria F. Poças, Jorge C. Oliveira, Fernanda A. R. Oliveira and Timothy Hogg in Critical Reviews in Food Science and Nutrition, 48:10 (2008) 913 – 928, and uses the key formula:

The formula provides a conservative (i.e. high) estimate of the diffusion coefficient DP depending on temperature T (in °K) and molecular weight MWt (we use MVol as a good-enough approximation). The data table shows Ap and a parameter t which modifies Ap as Ap=Ap(table)-t/T. Because these values are accepted by food regulatory agencies in both the US and Europe they are useful starting points for “what if scenarios”. Needless to say, our own diffusion model has been validated so that the outputs, for given inputs of D, thickness etc. are correct. However, the realities of each specific situation (e.g. specific polymer blends) means that no guarantees about the correctness can be provided. Note that the formula is intended to be applied to relatively large molecules for which there is little or no published data and not for gases and water where the diffusion coefficients are generally known in the literature.

The formula used for the estimation is often associated with Piringer and Brandsch. Brandsch has also produced a stand-alone estimator for diffusion coefficients linked to the Tg of the polymer and Tm, melting point, of the small molecule, plus the molar volumes of the polymer and molecule. The formula is a rather complex build up of multiple components so is not described here. As a user you just provide the required inputs. For the MVol of the polymer you can divide your polymer MWt by the density, though it’s probably good enough to just enter the MWt. A factor not included by Brandsch is %X, the % crystallinity of the polymer. Diffusion through the crystalline portion is effectively zero. Polyethylene, for example, has a very low Tg and should, from this formula, give very high diffusion coefficients. However as you go from, say, 40% crystallinity in a low density version up to 70% in a higher density version, diffusion coefficients go down. For many polymers, %X is 0 so you can ignore it.

An alternative way to get at diffusion coefficients is via Williams, Landel, Ferry, WLF theory. If you know (or can estimate) D at a reference temperature, TR, typically the Tg, then D at a higher temperature can be calculated via a shift factor, aT given by:

Log(aT)=-C1(T-TR)/(C2+T-TR)

If you select the WLF option you can enter Tg, the value of D at Tg, the temperature at which you are diffusing and the constants C1 and C2 which are generally assumed to be 17.6 and 51.4. The D0 value is now used exclusively (i.e. you can’t have WLF and concentration dependence at the same time – though you can, of course, use the WLF value in the normal mode). The graph shows how D varies from Tg up to a temperature 100°C higher to give you an idea of what WLF is saying. The take home message is that D can vary hugely with relatively small changes in temperature. That’s why it is so important to understand WLF effects. For “normal” polymers, (and in the approved calculations above) D changes by Arhenius-style amounts, i.e. a factor of 2 for every 10°C change. With WLF, 10°C can cause an order of magnitude change!

But how are you to know D at Tg? The trick is to enter a temperature, e.g. 25°C where you know D and then vary Tg till the calculated D is correct. Now you can see what D will be at, say, 35°C and be fairly confident that the size of the change is reasonable. This is because WLF is a universal expression of “time-temperature equivalence” and the default C1 and C2 values, as WLF point out in their key paper many years ago, seem to cover a very large range of cases.

More on the calculations
 
With the diffusion coefficients and transition concentrations set you just need to know a few more parameters related to defining your situation and the calculations. First of all, what is the thickness of the polymer through which the solvent is diffusing. Second, this is a numerical simulation, what grid-size do you want to use? A small grid gives fast simulations but if they are too fast they will be inaccurate. A large grid gives slow, but more accurate simulations. Third, how many time steps do you want to model. Fourth, what is the basic time-step of your simulation – seconds, minutes, hours, days, months or years?

Finally you need to define B which is the (dimensionless) ratio of diffusion resistance (L/D) to surface resistance (1/MassTransferCoefficient). For a constant diffusion coefficient, if B is high (100 or greater) then diffusion is limited only by the diffusion constant of the system. If it is low (5 or lower) then the rate at which solvent can get into (Absorption) or escape from (Desorption) the surface becomes a significant factor in the whole process. 

In Desorption mode, a low B means that the solvent cannot evaporate quickly from the surface – either because there is insufficient local air flow or because the solvent is high-boiling, such as a plasticiser.

In Absorption mode a low B implies that something near the surface (e.g. a highly crystalline skin layer, a simple lack of effective stirring, removal of the heat of condensation) means that fresh solvent arrives slower than the solvent can diffuse into the bulk.

When you set B, the Mass Transfer Coefficient, h, is calculated for you. This is in units of cm/s. This value has to be treated with some caution. B is assumed to be calculated relative to the diffusion coefficient at the outer surface according to the starting concentration. If you change the outer concentration then, depending on the dependence of diffusion coefficient on concentration, h will change. The physics say that it should be the other way round – h should be your input value and B should be calculated from it. But most of us have little idea what a mass transfer coefficient should be, whereas we do have some intuition about the relative rates of diffusion and mass transfer which is captured in B.

The effect of B is very dependent on the thickness of the sample. If the sample is thin then surface effects can have a strong influence, if thick then they are less influential.

You can also enter values of h and B is calculated.
 
Because the modeller is highly interactive, you can easily play with all these input variables so don’t worry if you get things wrong at the start. If you guess that 100 seconds would be a good time-frame to model but see nothing much happening during the simulation then click the Stop button and set it to, e.g. hours. If, on the other hand, you set it to 100 days and the first simulation step gives a huge change then you might want to try hours or minutes. For some settings the numerics will blow up (that’s the nature of numerical modelling); you’ll get a polite message suggesting you should try other parameters.

Whilst the modeller is running you see the % concentration and time. If the concentration exceeds 50% (in absorption) or goes below 50% (in desorption) then the t ½ (halftime) is automatically recorded as this is a useful number.
 
Desorption mode
If you are modelling Desorption you need to set just one more parameter: the starting bulk concentration within the polymer.

When you click the calculate button you see two plots. On the left you see the concentration gradient throughout the polymer. It is assumed that the left-hand-side is open to the atmosphere and that the right-hand-side is sealed (e.g. a coating on metal). The right-hand plot shows the total weight of solvent in the sample with time compared to the 100% at the start, i.e. normalized weight. By using normalized weights we avoid complications of volumes and densities. These two plots are a full characterisation of the diffusing system. Moving your mouse over any of the plots gives you a readout of the values at that position or time. The right-hand plot also has a graph of “Loss”, i.e. the amount of material that has come out from the polymer. When the Copy Diffusion Data to Clipboard button is pressed, the concentration within the polymer plus the amount lost over time is ready for pasting into, e.g. Excel.

Absorption mode
So far we haven’t had to mention HSP. That’s because HSP are totally irrelevant to everything so far. Diffusion constants, for example, have zero dependence on HSP.
 
In one sense, HSP have nothing to do with Absorption either. Given a surface concentration, everything else just follows independent of HSP. The reason that HSP are so important is that they allow a reasonable estimate of the effective surface concentration. With a RED number of 0, the surface concentration will tend to 1 as the polymer is fully soluble. As you travel beyond a RED number of 1, the surface concentration must be falling rapidly as the polymer is hardly soluble. It is the HSP dependence on surface concentration that makes permeation and breakthrough-time experiments valid for estimating HSP. Note that in these permeation experiments solvents that might be “Outside” such as methanol, can still come across as “Inside” in terms of breakthrough times, for example. This is because the exceptionally high diffusion rate of methanol (small, linear molecule) outweighs the low surface concentration. Similarly, many “Inside” solvents show no breakthrough after a given fixed time because their large molar volume, and/or the fact that they are cyclic/aromatic/branched slows down the diffusion rate so much that their high surface concentration is irrelevant.
 
There used to be a surface concentration estimator but it was removed as it could not reliably give realistic values. So you have to enter your own value. You can also choose to stop the simulation at Breakthrough, i.e. the time the first significant concentration of solvent arrives at the surface. What constitutes “significant”? That’s for you to judge. Enter a value in Breakthrough % which defines the % of the Surface Concentration at the absorbing side above which the solvent is considered to have broken through. So if you set 1% for this value and the Surface Concentration is 40% then Breakthrough is defined as 1% of 40% = 0.4%. For “sharp” fronts (usually those with a strong dependence of diffusion rate on concentration) this Breakthrough % value makes only a small difference. For “shallow” fronts it can make a big difference. This isn’t a fault of the modeller – it’s what happens in real life. In other words, for “shallow” fronts your measured breakthrough time will depend on the sensitivity of your breakthrough detector.

You can also choose to have the second surface open (for when you are interested in e.g. permeation) or blocked (for when you are interested in e.g. absorption into a polymer film with thickness L coated onto a metal surface or absorption into a free film of thickness 2L). If the second surface is unblocked then after breakthrough the permeation rate is calculated in g/cm²/s. These units are used because the diffusion coefficients use cm rather than m and g seem more relevant than moles. The value depends on the value of the solvent density ρ Solvent but not on ρ Polymer.
 
The two plots show, first, the concentration throughout the sample, second the increase of weight from 0% up to 100% which is defined as attaining your surface concentration. You can plot this against linear time or against square-root time. Square-root time usually gives a linear plot which is characteristic of basic (or Fickian) diffusion. If you get a curve at the start, look for a significant B value.

When you move your mouse over a plot you get all relevant data at that point.

If you have not selected “Stop at Breakthrough” then the permeation rate is also shown as a red line, using the log-scale axis on the right of the plot. The scale for this is unknown as the plot starts so you see the graph adjusting itself till things settle down. A lower limit of 1E-16 is imposed on the log graph as 0 values are inadmissible in a log plot.

Weight %
Because all calculations are done on the basis of the current volume fraction of solvent, they are most naturally viewed in Volume terms. But typical experiments involve weight fractions. Given known relative densities, conversion between the two modes should be simple. But the main plots aren’t so much of % volume but % of starting concentration (for Desorption) or % of fully absorbed (as defined by the Surface Concentration term). These plots are therefore independent of Volume or Weight mode. To know the absolute Volume and Weight fractions, you move your mouse over the graph and get an automatic readout. If the Solvent and Polymer densities (ρ Solvent and ρ Polymer) are different from 1.00 then the Volume and Weight values will differ.

Gradient
This option is intended for skin permeation where the diffusion coefficient of the permeant (the main calculation) may well be influence by the presence of “permeation enhancers”. These enhancers will have a high concentration at the outside and (presumably) zero concentration on the inside. The simple assumption in the Gradient option is that the permeation enhancers provide an X-fold increase in diffusion coefficient at the outside, linearly tapering to the standard diffusion coefficient on the inside. Data suggest that the effects are modest (X~5), but still significant.

Sphere and Cylinder options
The Fickian diffusion equations are no different for a sphere (e.g. for controlled release of drugs) or a cylinder (wrapped up as a torus to avoid discussions of edge effects). The key difference is that towards the centre there is less relative volume so they both fill up (or empty) faster than a single-sided plane and where the radius is the same as the thickness of the planar sample. If you run either of these options, the Blocked 2nd Side option is automatically selected to remind you that the diffusion stops at the centre. The shape of the concentration/distance curve is unchanged. The shape of the filling/emptying curve is different because of the volumetric effects. The sphere has 3 times the surface to volume ratio of the (single-sided) plane and the cylinder is a factor of 2 so they fill up (or empty) as Sphere>Cylinder>Plane.

Outputs
Clicking the Capture Diffusion data button puts all relevant data onto the Clipboard in a format that can pasted directly into programs such as Excel. This is useful for deeper analysis of diffusion/permeation data.

Loading and Saving
We provide a few classic diffusion cases (from Crank) as .dif files in the HSPiP Data folder. Feel free to Load these to get to know some of the basics. At any time you can Save your current settings so you have a record of your diffusion model.

Summary
It is literally impossible for us to provide you with an easy model that will answer all your questions. Diffusion is amazingly complex, even though a single equation can be used to describe the phenomena of greatest interest, and most of us simply don’t have enough data to enter exact values for all the parameters.
 
But on the other hand we need to stress the intrinsic simplicity that flows from your understanding of this complex modeller. There are many myths about different types of diffusion (see the eBook Diffusion chapter). Our belief is that there is only one type of diffusion, the one we have mapped out in this modeller based on the simple diffusion equation (Fick’s Second Law). Different types of diffusion behaviour simply represent different regimes (rigid, elastomeric, solution, Mass Transfer limited etc., or combinations of these) in the same system.

How to use HPLC
There is good scientific reason for believing that there should be a linear relationship between ln k’ (the log of the HPLC capacity factor) and the relative cohesive energy difference between the analyte/stationary phase and analyte/mobile phase.

In other words, if you know the HSP of your column and of the mobile phase then the retention time (as expressed via ln k’) is easily calculable.

The problem is that you may not know the HSP of your column and your estimate of the HSP of the solvent mix may also not be too accurate. The solution to this problem is the HPLC modeller which lets you adjust all the key parameters to see if the fit is meaningful or not. 

If the data from your test materials is meaningful then the modeller lets you predict the ln k’ of any other analyte. It also lets you predict those two (usually competing) factors: speed of separation and size of separation where you want a fast speed (short retention times) combined with a large difference between analytes (long retention time for the slower-moving analytes). 

The first thing to do is to use the basic Sphere form with your test materials. Instead of the normal 0-6 in the Solubility column you enter the ln k’ values on your particular column. If you then click the H button (for HPLC) you immediately get a form with a graph showing your data fitted with whatever parameters happen to be active at the time. Usually this will be a bad fit – as judged visually (large scatter) and as judged by the R² value, the standard estimate of goodness of fit (a value of 1 is perfect, a value of <0.8 is really rather bad) and the Standard Deviation (0 is perfect).

First check that you’ve selected the correct solvent (Acetonitrile or Methanol) and the correct % solvent. This gives a good estimate of the HSP of the mobile phase, but you can enter your own estimate if you wish. Then it is recommended to set [15, 1, 3] as the value for the stationary phase as this seems to be a good general starting point.

Now there are only 2 fitting parameters: the Slope (C2) and Intercept (C1) of the formula:

ln k’ = C1 + C2 * MVol * (Distancema – Distancesa)

where the mobile phase (m) and stationary phase (s) Distances are calculated using the normal Hansen equation and C1 contains both the “column constant” and entropy terms and C2 is a combination of 1/RT and a factor related to the number of theoretical plates in that particular column.

To get the best fit, click the Calculate button. Fitting routines can sometimes give weird results – if they are too weird, click the Undo button and try changing the values manually. Usually once you get close, the automatic fit becomes more reliable.

If just one of the data points is seriously out, it might well be that the “official” HSP value is not good enough. Although many values are very well verified, many of them are estimates that can (and this is openly acknowledged) be out by 1 unit. If an adjustment by ~1 unit gives you a better fit then you may well decide that you’ve found a better data set for that analyte and can make it a permanent part of your overall data set.

Clearly there is risk in adjusting data to give you the desired fit. At this stage of the development of the HSP HPLC theory all we can say is that our experience shows that the HPLC data seem to be more valid than some of the standard HSP values so modest changes seem to be valid. As the theory and data sets evolve we will be able to review this situation.

If the fit is generally poor then you need to check whether you have entered the correct solvent blend and/or the correct values for the stationary phase. Our experience has been that most poor fits have been due to inputting errors on our part (e.g. mixing up 60/40 with 40/60 blends) and not due to poor theory. But once again you may find that HSP HPLC does not work for your analytes. We would very much like to know counter examples and urge you to send us your .hsdx sets where the fits are bad.

With a good fit you can then explore what would happen if you introduced a new analyte. Enter its HSP and MVol parameters and you will get a good prediction of ln k’. Similarly, you can change column parameters and/or solvent blend to see what the new predicted values would be – maybe you can get faster separations with good resolution or maybe not. The whole point of the modeller is to give you an intelligent method to improve your HPLC separations.

If you select Show Solvent Range Plots then for each analyte the calculated values for the solvent blend ranging from 0 to 100% water are plotted in the Y-axis with the X-axis value remaining the experimental value. This gives you a quick graphical view of how the relative retention times for the different analytes will change with solvent blend. You can read off the values from the graph or you will find that they are automatically placed onto the Clipboard in a format that is readily pasted into spreadsheets such as Excel.

The simulated HPLC plot also gives you visual indication of what happens if you change the solvent blend. By moving your mouse over each peak you can find which analyte is which and also its exact predicted column volume (where 1 column volume means 0 retention).

Finally, if you have confidence in this methodology then you have a very quick way of getting good HSP estimates of new analytes. From the ln k’ you can try out various HSP sets to see which gives a sensible fit. You can use the DIY HSP to give you some estimates of what sensible values (and MVol) might be. For example, if you find that [15, 3, 8] and [15, 8, 3] both give a good fit, you can use your intuition (e.g. “this molecule actually has an –OH group”) to help you decide which is the more probable value. It is impossible to solve an equation in 3 unknowns with 1 data point, so one HPLC run cannot give you unambiguous numbers. If you try three different solvent blends then you might get three data points that are good enough to give you a precise unambiguous HSP set.

The point about multiple solvent sets is important. It is very easy to get great correlations with one column, one mobile phase and one data set. What we’ve found is that if you have a data set containing multiple analytes measured at multiple solvent blends then it is very, very hard to “fiddle” the results. That is why we have confidence in this technique. Our very first fits (when we had little idea of what column HSP should be) were fine till we challenged them with other solvent blends and they were quickly shown to be useless. We then found fits that were robust across an entire range of acetonitrile/water and methanol/water blends.

The glory of science is that hypotheses are refutable. If we get enough data to suggest that this HPLC methodology is invalid, we will happily remove it from the book and the software. Till then we offer it as an exploratory tool in the knowledge that all our attempts to make it fail have so far failed – in other words, in our non-expert hands, and with the data sets we’ve encountered, the technique seems to work very well, just as the theory predicts.

How to use IGC
From version 5 the code and methodology have been improved based on discussions with and datasets from IGC expert Dr Eric Brendlé of Adscientis near Mulhouse, France.

The basic theory of IGC is explained in the eBook. “All” you have to do is create a .hsdx file with Chi values in the “Score” column, open IGC, and click the Calculate button. The best fit HSP values are automatically produced for you and you can see the resulting graph to show you how good the fit really is. 

But of course things aren’t that simple. First, many IGC experiments are run at high temperatures. For these you need to click the ºC button, enter the IGC temperature and click Calculate. This automatically calculates the HSP of the test solvents at that temperature and also translates the best fit HSP on the IGC form (which is the fit at the IGC temperature) down to room temperature. To do this the thermal expansion coefficient of your material has to be estimated. If you don’t know this experimentally then 0.0007 seems from the literature to be a reasonable estimate for a wide variety of probes.

The second complication is that although the calculated fit is guaranteed to be the mathematically best fit – only the scientist can judge whether the fit really is any good. You should recognise that many forms of error can creep into experiments and you should use your best judgement as to whether the values are sensible. We have noticed, for example, that for some non-polar samples, δP is suspiciously exactly 0. This is rather implausible and it you try manually changing δP to, say, 1, the objective fit is not much worse and the result makes more scientific sense.

There is a mathematical estimate of the 90% confidence levels, using Huang’s techniques described in the referenced paper. This is a helpful guide, but the scientist’s judgement should also be used. And the model makes this easy to do.

We strongly recommend that when you get your calculated best fit that you should then manually vary the HSP parameters and see what happens to the fit. If you have an optimum set of probe solvents (ones that fully encompass the HSP of the test material) then any change of parameters should make the fit significantly worse. But if your probes don’t cover a full range (and this is often the case for δD) then relatively large changes in a parameter will make relatively small changes to the quality of the fit. If you find this situation then you have two choices. First, to run more (or, rather, different) solvent probes to better cover the HSP range. Second, to use your judgement and, maybe, the DIY section to make a sensible decision on the optimum values. For example, if the “best” fit for a material which is largely aliphatic comes out with δD=21 and you find that the quality of the fit is not much different with a more expected δD=17 then go for the 17 rather than the 21.

So far we’ve assumed that you have a set of Chi values for the solvents in relation to the stationary phase. However, it’s really rather tricky to calculate these from the prime data, Vg, the relative retention volume. You need Antoine constants and B11 (Second Virial Coefficient) values for each of the solvents. If you have all these then that’s not a problem. But for those who don’t we’ve added a Chi calculator that opens up when you click Show Chi Calculator.

We’ve provided a selection of typical IGC solvents along with their Antoine constants and Critical Parameters. From the Critical Parameters we can estimate B11 by one of two methods from the literature. The first one uses Tc and Pc, the second uses Tc and Vc. One tends to underestimate B11, the second tends to overestimate, but this is only a general trend and there are many exceptions. The point of providing these two methods is that you can check for the effect of the estimated B11 on your final HSP calculations. If B11 values are critical for the HSP then you need to find better estimates. If, as is often the case, the B11 values make only a modest difference, then you can relax a little. The B11 value is entered in the table, but you have to scroll over to the right to find it.

The assumption is that when you enter your Vg in the Chi calculator that the Chi value in the main .hsdx table should be automatically updated. However, if you just want to play with Vg-to-Chi without changing the Chi values in the main table, de-select Auto Update Main Table.

In earlier versions the Molar Volume and Density were used for calculating Chi from Vg. However, this led to numerous complications and the final calculation essentially neutralises the effect, so these values are no longer used when calculating Chi from Vg. For those familiar with the theory, the MVol_Solvent/MVol_Stationary_Phase is now assumed to be effectively zero, i.e. MVol_Stationary_Phase is taken to be that of a polymer with MVol>10,000.

For those who have lots of datasets with Vg values, the Load Vg file option is available. You simply create a simple tab-separated text file with solvent name and Vg values. Make sure that the solvent name is exactly the one used in the Vg-to-Chi table so that it is easy to find the correct solvent. For example, if you use 2-butanone, make sure you enter it as Methyl Ethyl Ketone (MEK) which is the name used in HSPiP’s main data table.

Some literature provide IGC outputs as Activity Coefficients rather than raw Vg or calculated Chi values. To use such data, make sure the Show Chi Calculator option is checked, then enter the Molar Volume and Density for the stationary phase and select Data are Activity Coefficients. As long as your solvents have been selected from the master list, their names will match those in the master list and the solvent density is automatically calculated from the molar volume and molecular weight in that list. If not, you need to enter the solvent density manually into the only convenient place for it – the RED number column. Any entry in this column (other than the default “-“) will override the calculation from the master list.

How to use GC
It would be very useful if we could predict in advance the exact retention time of a chemical on a GC column. But of course this is not directly possible as retention time depends on numerous specific variables in the GC analysis: column type, column dimensions, temperatures, flow rates etc.

A useful substitute is the GCRI, (Gas Chromatography Retention Index). We know that the retention time of straight chain alkanes form an orderly progression from CH4 to C2H6 to C3H8 … And if we give each of these alkanes a retention index = 100 x number-of-carbon-atoms we can say, for example, that if a chemical elutes at precisely the same time as heptane then its GCRI is 700.

If the chemical elutes somewhere between hexane and heptane then, by definition, the GCRI is somewhere between 600 and 700. Kovats proposed a formula for calculating the GCRI. Suppose the lower n-alkane elutes at time A, the higher (n+1)-alkane elutes at time B and the chemical elutes at a time X between A and B then:

GCRI = 100 * (log(X) - log(A))/(log(B) - log(A)) + n * 100

If, in the example above, hexane eluted at 60 seconds, heptane at 80 seconds and the chemical at 70 seconds then GCRI = 100 * (1.845 - 1.778)/(1.903 - 1.778) + 600 = 654

If we can predict GCRI from the chemical structure then we can provide an accurate estimate of the retention time in a specific column provided we know the retention times of the alkane series.

For the HSPiP predictor we need to know three things:
•	The HSP of the column (typically [15, 1, 1])
•	The HSP of the molecule
•	The Boiling Point of the molecule

The properties of the chemical are either known (in which case you can simply enter them into the boxes) or can be estimated using the Y-MB technique from the SMILES of the molecule.

Of course if you are combining predicted HSP and predicted Boiling Point with a GCRI estimator which uses a fitted relationship based on differences in δD, δP and δH, it is unlikely that the predicted GCRI will be highly accurate. But in our experience it is a very good starting point for thinking through GC conditions that would allow good analysis of your molecule. You set up the column so that the alkanes either side of the predicted GCRI (which are named in the output) are separated quickly and efficiently, then try your molecule. There is a good chance that you will be in the right range!

How to use SMILES
For many of the modellers within HSPiP properties are calculated automatically by inputting SMILES data.

Many users aren’t too familiar with SMILES so this form of input might appear useless. But we can say two things. First, SMILES are far easier than you might think and very quickly you get used to them. Second, it is usually very easy to find the SMILES for a chemical of interest to you with a simple web search such as MyChemical SMILES. Wikipedia, for example, includes SMILES for most of its chemicals. You can also find them in ChemSpider where you enter the chemical name or the CAS#. Even better for the long term is to find the molecule using InChIKeys – see the Y-MB section for more details.

We use them because the Y-MB technique can automatically take the SMILES and create the molecular fragments from which the relevant properties are calculated.

That’s the background. Here’s a very simple explanation.

SMILES - Simplified Molecular Input Line Entry Specification

Excellent guides to SMILES can be found at 
http://en.wikipedia.org/wiki/Simplified_molecular_input_line_entry_specification 
and
http://www.daylight.com/dayhtml/doc/theory/theory.SMILES.html 

See http://www.pirika.com/NewHP/PirikaE/SMILES.html for a typical example of generating a SMILES in a freeware molecular drawing package and bringing it into HSPiP.

This is a brief summary in case you want to make some small changes to a SMILES input.

The standard atoms B, C, N, O, P, S, F, Cl, Br, and I are entered just like that, everything else needs a bracket around it – gold =[Au]. Hydrogens are implied

Single bonds are implied, double bonds are “=” and triple bonds are “#”.

Simple linear molecules using these rules are

CCO		Ethanol
CC=O		Acetaldehyde
C=CC		Propene
CC#N		Acetonitrile

Branching is shown with brackets, with the branch being to the atom to the left of the bracket:

CC(C)C(=O)O	Isobutyric Acid
Where the first (C) is the side methyl group and the (=O) is the double-bond oxygen of the carboxylic acid.

Cyclic structures are shown by numbers that indicate where a ring starts and ends. So
C1CCCCC1	Cyclohexane
has a “1” after the first carbon to say “the ring starts here” and a “1” on the 6th carbon to say “and this is joined to the other C1”.

Aromatics can be shown in two ways:
C1=CC=CC=C1	Benzene
or
c1ccccc1		Benzene
n1ccccc1 		Pyridine
o1cccc1		Furan

It gets more complex with –NH members of aromatic systems and an [NH] symbol is used
n1c[nH]cc1		Imidazole

Finally (for this simplified guide), cis-trans isomers across double bonds are shown as / and \

Cl/C=C/Cl		Trans di-chloroethene
Cl/C=C\Cl		Cis di-chloroethene

How to Use DIY HSP
There is no one, universal, simple, accurate way to calculate HSP from the molecular formula. This is frustrating for all of us who use HSP. Until such a method appears, the only alternative to measuring them directly yourself is to make do with a range of techniques which you can mix and match to reach your own best judgement on the HSP values. This really is a DIY (Do It Yourself) approach to HSP.

However, because of the power of Y-MB we recommend this as your basic HSP calculator.

Seven complementary methods are provided:

1 Y-MB
Dr YAMAMOTO, Hiroshi is an expert on fitting large datasets using Neural Network techniques. He has taken the full HSPiP Solvent Data set plus thousands of other compounds and provided an optimal Neural Network and Multiple Regression fit and has then tested it extensively on a wide variety of compounds – this is made easy because he has provided the means to go straight from molecular descriptor (SMILES, (standard) InChI or 3D file such a .mol) to HSP. In addition to the HSP δD, δP, δH, δTot (and also a Check δTot which is from the sum of the 3 HSP), Y-MB gives you molecular weight, molecular formula and estimated RI, MPt and BPt, each calculated via a Neural Network algorithm using literature data for each of the parameters. Values for Antoine Coefficients and critical parameters are also estimated for your convenience and added to the output text box. Ovality and MCI (Molecular Connectivity Index) are added for convenience as they are now used in some of the property estimation schemes. The MCI, for example, significantly improves estimation of BPts. Other estimated values are provided for your convenience
If you want to add the output to the Solvent Optimizer, simply click the ⇒SO button and all the relevant information will be added to the bottom of the SO table.

In the 6th Edition, the secondary predictions (such as viscosity) have, for deep technical issues, remained with the 5th Edition predictions. The HSP and vapour pressure-related values are the new values.

Because we believe that the relatively new InChI (International Chemical Identifier) standard for describing molecules is going to be of great future importance, we output the “standard” InChI and InChIKey. These are created with the “No Stereochemistry” option so they are the simplest possible outputs. Importantly, if you use the first 14 digits of the InChIKey as the search string on places such as ChemSpider (probably the best one-stop-shop for information on a chemical) then you are guaranteed to get the correct matches. InChIKeys are unique identifiers created from the InChI so unlike CAS# they are directly traceable to specific molecules and there is only one InChIKey (well, the first 14 digits) to a molecule. The reason we emphasise the first 14 digits is that they will find all variants of a given molecule, independent of stereochemistry, isotope substitution etc. Once you start using InChIKeys for searches you’ll wonder how you ever survived without them.

For a useful quick guide to InChI, visit http://en.wikipedia.org/wiki/International_Chemical_Identifier

If you input an InChI then we output the SMILES for your reference.

As an aid to those concerned with Environmental issues, some extra parameters are estimated for you. The Viscosity at 25ºC is estimated in cP. This is a very difficult parameter to estimate and the values should be seen only as a guide. This output was requested by a number of customers who said that they were happy with an indicative value. Vapour Pressure @ 25ºC is a useful guide to the relative volatility of a compound though you can also enter a ºC parameter and get the vapour pressure at that temperature too. From the vapour pressure, the RER (Relative Evaporation Rate, nBuAc=100) is estimated via the empirical formula RER=0.046*MVol*VapourPressure. The Flash Point estimate is handy to know if your chemical will fall in the wrong domain for your application. The Log[OH] value is an estimate of the rate of reaction with the .OH radical. When you combine the chemical knowledge from the HSP with the relative volatility and reactivity estimates you gain a powerful insight into possible substitutions for your current (high VOC) chemistry.

The default is for just the HSP and MVol to be placed onto the Clipboard for pasting (Ctrl-P) into other HSP fields or for going into Excel etc.

If you would like the full set of data on the Clipboard, select Full data to Clipboard.
After the calculation the data (with headings) is easily pasted into, say, Excel. As there are lots of values, the default is for a Header text to be provided as well, so pasting a calculation into Excel gives you a header row with the values below. If, however, you want to paste a number of different calculated values into the same spreadsheet you might want to select the No Header option and paste just the values. 

If you want to add the data to the Solvent Optimizer, click the SO button. It creates a new line at the bottom of the table, with the temporary name “From Y-MB”.

So it’s very easy to use – provided you have your molecule in one of the formats that Y-MB can read, SMILES directly or, via Load 3D File, .mol, .mol2, .sdf, .pdb. It’s generally easy to find SMILES or .mol for a molecule. You can also enter your molecule into any of the common (and often free) molecular drawing packages which will give you output in one of these formats. You can also use Open Babel (which is free) to convert from one format (such as InChI) to another. It would be nice to have InChI format as an input, but it is rather complex so it is easier for us to ask you to use Open Babel. For those who (for various reasons) don’t have molecular drawing packages and don’t like to risk revealing structures to on-line drawing tools, the SMILES menu option opens the powerful JSME tool on your local drive for great structure drawing and the ability to copy the SMILES to paste into Y-MB.

The 3D viewer shows you the molecule. The bonds can be shown as Bonds, Semi, or Filling depending on your choice. You can of course 3D rotate the molecule and Zoom (Shift-Click or Mouse-Wheel) or Pan (Ctrl-Click). The 3D technique is identical to that used in viewing the Sphere.

The 3D molecule is created using the awesome RDKit from Greg Landrum, for which we express our warmest thanks. You can choose to view the molecule with or without hydrogen atoms – if you want to swap between the views just click/unclick the Show Hydrogens in 3D option and click the Calculate button. As a formal note:

RDKit is licensed under the Creative Commons Attribution-ShareAlike 4.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.

The intent of this license is similar to that of the RDKit itself. In simple words: “Do whatever you want with it, but please give us some credit.”

An extra option is to Show Charges. This uses Hiroshi’s improvements upon the Goddard QEq (charge equalization) based on ionization potentials, electron affinities and atomic radii of each atom.

If you have a large set of compounds in SMILES format, you can use Y-MB to File Convert them into a standard .hsdx file and a .sofx (Optimizer) file. The file format (.txt or .bat) is very easy. For each chemical you need a Name, a SMILES and, optionally, a CAS No in that order. Each column is separated by a Tab (so you can, if you wish, create this from within Excel as “Tab separated format”). The file can, optionally, include a first line saying Name, SMILES, CAS – though this line will then be ignored.

If all goes well, the converted file will have the same name as the original but with .hsdx (and, separately, .sofx) instead of .txt or .dat. You can then load it straight into HSPiP. If Y-MB fails to convert a molecule it will be shown in the .hsdx file but all the values will be empty. The line will be missing from the .sofx file.

In addition, you get a _Full.txt output file containing all the extra information provided by Y-MB. It includes a header so you know what each column means. It is in convenient tab separated format that you can open straight into Excel.

If you select the Sub-Check option then an extra file _Sub.txt is provided with True or False for each molecule depending on whether there is a match to a sub-structure SMILES string provided. For those who are familiar with SMARTS there is an option to use those as sub-strings for extra powerful searches. For reasons unknown to us, you also have to choose the SMARTS option if you are searching for silicon containing sub-strings such as [Si]O.

For those who want to pre-screen their files before a large File Convert, the File Check goes through your chosen list, let’s say it’s called MyFile.txt. It outputs MyFile_Good.txt containing only valid SMILES and MyFile_Bad.txt containing entries that can’t produce a valid Y-MB estimate, plus MyFile_Caution.txt. The Caution molecules are preceded with flags such as *5* (the molecule is outside Lipinski’s rule of 5, i.e. >500 Daltons, >5 H-Bond Donors, > 10 H-Bond Acceptors – we’re ignoring logP>5) or *.* (a dotted SMILES was converted to a valid entry by, for example, removing an HCl or converting an acid salt to the acid itself). This pre-screen is important for those handling large datasets for purposes such as toxicology analysis. It is your choice whether you use your chemical knowledge to choose to combine some or all of the Caution molecules into your Good set. This can be done via any standard text editor.

2 Stefanis-Panayiotou
Stefanis and Panayiotou have produced a sophisticated group-contribution method for calculating δD, δP, δH, δTot and Molar Volume. All you have to do is break down your molecule into its component groups and enter how many of each group are in your molecule. For example, 1-Butanol possesses 1 CH3- group, 3 –CH2- groups and 1 –OH group. 

If you enter the numbers for 1-Butanol and press the Calculate button you get the calculated values of 21.9 for δTot. The other values are compared to Hansen’s table.
δD	δP	δH	MVol
Calculated	15.9	6.1	13.2	94.3
Hansen	16.0	5.7	15.8	91.5

There is also another Check δTot value calculated from the individual δD, δP and δH values which you can compare to the estimated δTot.

For a molecule such as 1-Butanol it’s easy to know how to break it down. For more complex molecules you need help. The first strength of the Stefanis-Panayiotou method is that the break-down uses the standard UNIFAC method and you will find numerous other examples in the literature of molecules being broken down in this manner. The second strength is that they have helpfully provided examples in their table that make it easy to work out the appropriate substructures.

Stefanis and Panayiotou recognised the fundamental flaw in the simple group contribution method – that, for example, 3 –CH2- groups behave very differently depending on whether they are part of 1-Butanol or cyclobutanol.

So they have added a further refinement. In addition to the 1st-order table, there is a 2nd-order table with important sub-structures. With a bit of practice you can quickly determine which 2nd-order contributions to include. By selecting them, the results for more complex molecules are more accurate.

It’s worth noting that δP and δH contribution methods must be less accurate than δD. The reason is simple. δD mostly depends heavily on how much “stuff” you have in the molecules. But δP and δH depend crucially on configuration which cannot simply be captured in a table of group contributions. As a further aid for this issue, if you suspect that the true δP and/or δH values of your molecule should be low, clicking the LowP and/or LowH option gives you values correlated especially for this scenario and therefore likely to be more accurate.

The authors of the technique stress that the technique is designed to be used with molecules with more than 3 carbon atoms or 3 functional groups. So although the program allows you to calculate the value for, say, methanol or ethanol, the results are not accurate. In practice this is not a limitation as HSP for such simple molecules are likely to be known already.

You might like to save your group assignments for reference, or for changing your mind later on. Click the Save button and the group assignments are saved as a .spg (Stefanis-Panayiotou Group) file. The Open button retrieves the group assignments from your chosen file.

To learn more of the S-P methodology, consult their paper on δTot and δD:
E. Stefanis, L. Constantinou, C. Panayiotou; A Group-Contribution Method for Predicting Pure Component Properties of Biochemical and Safety Interest; Ind. Eng. Chem. Res. 2004, 43, 6253-6261

Their work on δP and δH is included in:
Physical and Chemical Parameters of Paper Conservation, PhD thesis by
Emmanuel Stefanis (In Greek), Department of Chemical Engineering,
Aristotle University of Thessaloniki, Greece, 2007 and the full paper in International Journal of Thermophysics is found in:

Emmanuel Stefanis, Costas Panayiotou, Prediction of Hansen Solubility Parameters with a New Group-Contribution Method, International Journal of Thermophysics, 2008 , 29 (2), 568-585.

The parameters and equations used in this version differ slightly from those in the published work. Dr Stefanis kindly re-ran the correlations using the most up-to-date version of the HSP table. This, happily, removed many/most of the outliers shown in the Internatiol Journal of Thermophysics paper and improved the correlation coefficients.

The Y-MB method allows you the option automatically to create (or at least produce a good estimate of) the S-P UNIFAC (first-order) groups. There are some known imperfections (e.g. a lack of pyridine groups) so use the results with caution.

3-6 VK-H-F-N (Van Krevelen, Hoy, Fedors, Numbers)
These are on one tab but are selected individually

3-6: 3 Van Krevelen
Van Krevelen also admits that group contribution techniques cannot be expected to be accurate. But they are certainly better than nothing. Once again, you simply identify which groups make up your molecule and enter the number of each group. No 2nd-order effects are included.

You need to input a Molar Volume – see item (1) for how you might obtain this.

You also need to specify if you have multiple planes of symmetry. The more symmetry, the less polar effect there is (0.5 for 1 plane, 0.25 for 2 planes) and if you have 3 planes then both the polar and hydrogen bonding values are set to 0.

3-6: 4 Hoy
Hoy’s approach is more complex and it attempts to take into account many more factors. For example, there is a Polymer mode which takes into account the fact that values calculated for your simple repeat unit are unlikely to apply to the polymer itself. Hoy also assigns a partial molar volume to each group so you end up with an estimate of the molar volume as part of the calculation. 

Remember to never mix Hoy values with other values – his scheme, whilst excellent, is based on a different partition of δTot. So it is self-consistent but not consistent with other methods.

3-6: 5 Fedors
This method only determines δTot and seems to be favoured by those requiring δTot values for polymers. It is included for historical interest only.

3-6: 6 Numbers
This is one of the ways that Charles Hansen obtained the core HSP values. If you try this method you will quickly realise how much work was required to bootstrap the initial HSP set.

You need to enter the Enthalpy of Vaporization (ΔHvap) in kJ/mol and the Molar Volume in cc/mole. The Cohesive Energy, E is then calculated as:
E= ΔHvap - RT

These calculations all assume ΔHvap and E calculated at 25ºC, so the RT correction factor is 2.477 kJ/mol.

You can choose your units of input. If you use kJ/kg or kcal/kg you must also specify the Molecular Weight.

If you can only find the value of ΔHvap quoted at Tb its boiling point (a value lower than the value at 25ºC) then you can calculate the value at 25ºC by using the Fishtine approximation:

ΔHvap at 25 = ΔHvap at Tb *[(1-298.15/Tcr)/(1-Tb/Tcr)]0.38

where both Tb and Tcr are in ºK.

If you don’t know Tcr then a reasonable guess is Tcr=Tb+225. However the Tcr estimate from Y-MB is usually very accurate, so its use is recommended.

The Fishtine calculation is provided for you, with input temperatures in ºC for convenience.

From these δTot (the sum of the three components, i.e. Sqrt(δD² + δP² + δH²) can be calculated directly and accurately.

δTot = (E /Molar Volume) ½ and like all δ values has units MPa½ or, equivalently, (Joules/cm³)½

If you don’t know the Molar Volume you can either estimate it from the Y-MB method or you can find on-line tools that perform the calculations for you – or you can use your favourite molecular mechanics program – or even measuring the density and calculating Molar Volume (we provide the option to do this) as

Molar Volume = Molecular Weight / Density 

From the Dipole Moment and the Molar Volume, the simple Beerbower formula can be used to calculate δP. 

δP=37.4 * Dipole Moment/MVol ½

There are arguments in favour of using the more complex Böttcher equation (see Equation 10.25 in the second edition of the Hansen handbook, for example), but as it is unlikely that you will have the accurate numbers for the dielectric constant, refractive index and dipole moment required for that equation, the Beerbower equation seems adequate.

If you don’t know the dipole moment directly then in principle you can calculate it from within your favourite molecular mechanics program – but there are obvious problems with this approach which may give you idealised values for a single configuration in vacuo rather than an averaged value representative of the solution environment.

We now have to determine δH. The only way to do this is to provide an estimate for δD so that δH is calculated by subtraction. The Panayiotou method seems to provide very reasonable data (especially as it incorporates sophisticated 2nd-order corrections) for δD. If you don’t have a value for the Enthalpy of Vaporization, you can try various values till the calculated δTot matches the Panyiotou method.

Alternatively you can use a correlation between δD and Refractive Index that we’ve obtained by a best fit to the current HSP database:

δD=(RI - 0.803) / 0.0375

Although there is some reasonable science behind the idea of a correlation, and although we’ve shown that incorporating extra terms such as Molar Volume makes the correlation worse, like all correlations the results have to be treated with caution.

Clearly there is a chain of assumptions here, but it’s currently the state of the art for a purely numerical approach.

7 Polymers
As an adjunct to the Y-MB method we have introduced Y-PB (Yamamoto Polymer Breaking) for polymers. In earlier editions we started using (with his kind permission) the vast data table generously provided by Dr W. Michael Brown at Sandia National Laboratories. For the 3rd Edition we increased the number of polymers to >600 and used an –X notation instead of the original “cyclic 0” nomenclature of Dr Brown. Up to v5.1.x we only used Y-MB via the X notation. From v5.2.x the estimation of polymer values has been written from scratch, taking into account such factors as whether the functional groups are on the main chain or the side chain. This has greatly increased the capabilities of Y-PB and puts in place an infrastructure for the long-term future of polymer estimations. In addition to the HSP values, Y-PB provides estimates for refractive index, surface energy, Tg, dielectric constant, LnPO2, etc. The table has been increased to over 1000 polymers with many more experimental parameters added from Hiroshi’s vast dataset, using “representative” values when reported experimental values cover a wide range. For example, Dr Brown’s dataset contains values that differ from, say, the Japanese PoLyInfo which itself contains many different/contradictory values for the same polymer. Hiroshi had to work hard to judge which values to include in this table.

Double click (or Alt-click) on any of those polymers and the SMILES is put into the box, click on Calculate and the Polymer SMILES estimate is produced. If you switch to the Y-MB tab, the 3D viewer shows you the monomer unit, with the dangling bonds clearly visible. You can also calculate the Polymer Y-PB from this tab. If you set the N-Repeats to more than 1 then an n-mer SMILES is created and the Y-PB values calculated. The calculated HSP change for different n-mers. This is because the science of predicting polymer-HSP is not yet robust, though it is greatly improved thanks to the new techniques from v5.2.x onwards. At this stage (as with any HSP predictions) you have to use your judgement. You can enter Polymer SMILES by hand. You can also create AB, AABB or AAABBB polymers by selecting two monomer rows, clicking the appropriate selection then clicking the CP (Co-Polymer) button.

If your own polymer isn’t in the table you can create your own SMILES string. For complicated molecules, such as a cellulose derivative, it’s difficult to create the SMILES string accurately yourself. One way to do this to create the molecule in a standard molecular drawing package, using something like Br to show where the polymer chain goes:

The package can then automatically provide you with the SMILES string for this pseudo-molecule: OC1C(OC)C(OC(COCCC)C1Br)OBr
Now all you need to do is replace the two Br atoms with the X for polymer SMILES
OC1C(OC)C(OC(COCCC)C1X)OX
This can go straight into Y-MB or the Polymer tab and you get your predicted HSP values.

With the SMILES option on the main form you can use the JSME editor to create your SMILES. This allows you to use X as an atom so you can draw the Polymer SMILES directly. JSME runs on your own browser from files in the HSPiP Data folder and there is NO link to the external internet so the structures you draw are fully private.

Just as in Y-MB there is a File Convert function to create a set of HSP values from Polymer SMILES, via a simple tab-separated text file containing polymer name and Polymer SMILES separated by a Tab, e.g.:
PE	XCCX
PP	XCC(C)X
PEO	XCCOX

The output is saved as a .pds file that can be loaded into the Polymers form and also is placed on the Clipboard for pasting straight into Excel. The batch breaking routine does its best to ignore bad lines etc. and produce a clean output file.

The SMILES option using JSME allows you to enter a polymer structure in a simple chemical drawing program, add the Polymer “atoms” at the appropriate places and calculate a Polymer SMILES that can be pasted (Ctrl-C) into the text box. This can also be used as a quick way to find a polymer within the table. If the Polymer SMILES results in a match to one of the polymers in the table, this is shown in the output box.

For those who make more complex polymer blends there is a simple Blend option. Select 2 or more monomers from the table (or select one then when the Blend option is open, select and Right Click to add to the polymers in the list), click the Blend option and enter the % of each monomer, then click the Calculate button to obtain your estimate. Clearly this is very limited. It assumes a random blend of your components (i.e. a reactivity ratio of 1 for each monomer) and determines the statistical blend of AA, AB, AC, BB, BC, CC (for a 3-component blend) diads and from their calculated HSP values and their volume-weighted (not mass weighted!) values obtains the final result. Such predictions need to be treated with due caution.

The Miscibility option explores polymer/polymer miscibility through the use of Donor/Acceptor. The way to use this option is described in the eBook.

δD from tables
The δD parameter can also be found with the charts given in the second edition of the Handbook. This requires knowledge or estimate of the critical temperature. At the same time it could be noted that this procedure is a corresponding states calculation, CST, (in agreement with the Prigogine CST approach), and that this could be the basic reason for some differences in the group contribution methods.

Why no Beerbower table?
The Hansen handbook is honest about the limitations of the group contribution approach. The Beerbower values included in the handbook show wide error bars and it would not do justice to the table to simply include some fixed value. In addition, the table does not cover as wide a range of groups as the other methods. However, in the hands of an expert, the table can be valuable and users might find it instructive to derive their own estimates manually.

Which method is the best?
We have no doubt that the Y-MB and Y-PB methods are the only ones you should use. The historical methods were excellent in their own time and for their own purposes but unlike Y-MB which has constantly been refined and extended, problems and limitations of the older methods have never been fixed.
A few papers attempt to compare and contrast the methods, but we find that flaws in the methodology of determining the “true” value means that the comparisons aren’t meaningful.

And one word of caution: never make estimates from the different methods then take an average. There are plenty of academic papers out there which do this but it is scientifically meaningless and unacceptable. 

Other predictions
Using the Y-MB method it is possible to obtain many predicted values. These can be used in many ways, described in this section.

Surfactants
On the Surfactants tab you have the ability to create HSP for your surfactant of choice. This is done by providing a set of hydrophils and a set of hydrophobes. The idea is that you “mix and match” with whatever is the closest approximation to your desired surfactant. This is a relatively crude method, but the calculated values are a useful starting point that you can refine for your own purposes. The calculated value is the weighted average of the two components, based on their relative molar volumes. If you don’t like the pre-assigned values, you can enter your own HSP parameters and molar volumes into the respective boxes and the weighted average calculation is carried out for you.

SC Johnson have generously allowed us to use their table of surfactant HSP (calculated for them by Dr Hansen) which might give you an alternative way of estimating the values for your own specific surfactants. You can sort the table by HLB (Hydrophilic-Lipophilic Balance) or by type (Anionic, Cationic etc.) for your convenience.

As an alternative, the Y-MB button automatically generates a SMILES input to the Y-MB calculator and returns the HSP values. This only works when Y-MB has relevant data. A number of the hydrophilic headgroups are undefined in SMILES terms so for these the Y-MB calculation is automatically disabled and a message appears to explain why.

You can also customize either the head or tail via your own SMILES string. This allows you greater versatility. Enter a SMILES then press the Calculate button next to it and it will be added to the simple head + tail calculator. You can also click the Y-MB button to calculate the full molecule, though for large molecules this is very slow and not too satisfactory.

For those familiar with HLD-NAC surfactant theory (see AbbottApps for an app-based explanation) it is important to know the Effective Alkane Carbon Number (EACN) of the oil. This can be estimated from the SMILES of your chosen oil.

HSE (Health, Safety and Environment)
Decisions on which solvents/chemicals to use are seldom simple. Trade-offs have to be made with cost, VOCs, toxicity, environmental impact and so forth. To make rational decisions, it’s good to have side-by-side comparisons of key, relevant properties. That’s what the HSE tab does. Enter two chemicals (as SMILES) and click the Calculate button. In addition to standard properties such as molecular weight, molar volume, density, melting point, boiling point, properties provided include:
•	Vapour Pressure (at 25°C, at specified temperature and in terms of Antoine Constants)
•	Flash point
•	RER – Relative Evaporation Rate (n-Bu Acetate=100)
•	Log(OHR) – the OH radical reactivity
•	MIR – the Carter MIR measure of VOC activity
•	Log(Ksoil) – the soil/water partition coefficient (using a QSAR)
•	Log(Kow) – the octanol/water partition coefficient
•	Log(S) – the water solubility

Furthermore there are two numerical estimates of similarity. In both cases values closer to zero mean greater similarity.

•	HSP Distance – the Distance in HSP space
•	Functional Distance – a measure of the difference in functional groups between the two molecules.
These two numbers are very helpful in “read across” estimation in, for example, REACH.

Azeotropes and Vapour Pressures
If you can estimate the activity coefficients of two chemicals and if you know (or can estimate) their vapour pressures as pure liquids, then it is possible to calculate the vapour pressures of the two chemicals above the liquid. You can do this in two ways
•	Calculating the vapour pressures of the two components at various mole fractions at a temperature of interest
•	Calculating the vapour pressures at the boiling point of the mixture across the mole fraction range.

The first calculation is the classic vapour-pressure equilibrium curve. The second enable the classic calculation of Azeotropes.

To perform these calculations, simply enter the SMILES of the two chemicals and click Calculate. This gives values (estimated if not in the HSPiP database, experimental otherwise) for boiling points, vapour pressures, Antoine Coefficients and also gives two numbers, the so-called Wilson parameters, which allow the activity coefficients for the two chemicals to be calculated across the whole mole fraction range.

If you don’t like the estimates, you can always manually enter values for the key parameters and click the local Calculate button to update the graph. 

Please note that the experimental Antoine Constants are especially important for accurate VLE calculations which is why you can add them manually. However, if you do not know the Antoine Constants but you know the experimental BPt the clicking the BPt ⇒Ant button changes the Antoine A value so that the VP would be 760mm/Hg at the BPt. This simple trick greatly improves the accuracy of the predictions and is highly recommended.

The Copy button places all the relevant VLE data onto the Clipboard ready to paste into Excel.

The Open button allows you to load a VLE experimental dataset using columns of X1 (or Vol1 or Wt1), vapour fraction (in the same units) and, optionally, boiling temperature. Fractions that are in % are automatically converted to 01. Vol and Wt values are automatically converted to mole fraction using the MWt or MVol of each solvent. Temperatures in °K are automatically converted to °C. It is the user’s responsibility to ensure that Solvent 1 and Solvent 2 match SMILES1 and SMILES2!

The plots offer a lot of choice. The first choice is between Vapour Pressures and Azeotropes. If the latter is chosen then the full Azeotrope data are provided as outputs: Mole fraction, Weight % and Volume % and boiling point of the Azeotrope (if it exists), and the HSP of the Azeotrope.

If you compare predicted % to experimental values make sure you know whether the experimental values are mole%, weight% or volume% - there is a lot of confusion in the literature! 

The graphs include options to:
•	Show the ideal curves so you can visually check the deviation from ideality.
•	Show the 0-1 lines which simply show what would happen if the liquids were ideal and had the same vapour pressure – again, just as a visual reference.
•	Show the Azeotrope boiling point, in ºC (disabled for the Vapour Pressures plot).
•	Plot X1, X2 means that the graphs for both liquids start with 0 at the left-hand origin. Conventionally, X1 is plotted in this manner, with X2 plotted with 0 in the right-hand origin. Use whichever you find more comfortable and informative.
•	Plot Wt% - use a Wt% scale rather than (the conventional) mole fraction scale.
•	Show Gamma – plots the activity coefficients of the two liquids over the range. You cannot plot Temperature and Gamma on the same graph.

Feel free to use as many or as few of these options as give you the information you want.

When you move your mouse over the graph, you get a readout of the relevant properties at that point.

Please note that water is not handled reliably by this methodology. Also, the public domain datasets on F-containing molecules are rather limited so the predictions of important F-containing azeotropes are not as reliable as they would be if more data were available for inclusion in the NN fitting. These F-containing azeotropes are a hot topic among some of the specialist chemical companies (because they offer the possibility of low ozone destruction and low global warming potential), which make it understandable that only a small number of datasets are in the public domain.

Solubility
It seems odd to say that you cannot directly predict solubility from HSP! But HSP have always been about relative solubility and have never attempted to issue exact solubility predictions.

However, with some simple equations and some good estimations of key properties, it is possible to predict solubilities directly.

The equation is simple:

ln(Solubility) =  – C + E – A – H

C is the “Crystalline” term. It is the Van ‘t Hoff (or Prausnitz) formula that depends on the difference between the current temperature, T, and the melting point Tm, the Gas Constant R and also on the Enthalpy of Fusion ΔHfus.

C = ΔHfus /R*(1/Tm – 1/T)

In other words, the higher the melting point and the higher the Enthalpy of Fusion, the more difficult it is to transform the solid into the dissolved (liquid) state.

This formula is a simplification which follows convention and ignores some other terms like heat capacities.

For calculations where Tm<T, C is set to zero. The calculations start to become meaningless in this liquid/liquid scenario, but it seems instructive to carry out the calculation. A warning is provided to alert you to the problem.

The E term is (combinatorial) Entropy. This is calculated from volume fractions (Phi) and molar volumes.

E = 0.5*PhiSolvent*(VSolute/VSolvent -1) + 0.5*ln(PhiSolute + PhiSolvent*VSolute/VSolvent)

It’s worth making an important reminder that molar volumes for solids are not based on their molecular weight and solid density. In the words of Ruelle: “(For a solid) the molar volume to consider is not that of the pure crystalline substance but the volume of the substance in its hypothetical subcooled liquid state.”

A comes from the activity coefficient. The larger the activity coefficient, the more negative A becomes. A simple estimate of activity coefficient comes from the HSP distance – not surprisingly, the larger the distance, the higher the activity coefficient and the lower the solubility. Because the simple HSP distance has been shown to be only an approximate guide to activity coefficients, the Wilson parameter predictor from the Azeotropes and Vapour Pressures calculator is used. Molar volumes play a significant role in activity coefficients, so a large molecule with similar HSP values is significantly less soluble than a smaller one.

H is a Hydrophobic Effect term that is very important for solubilities in water, and somewhat important for solubilities in low alcohols. The calculation follows the method of Ruelle and depends on PhiSolvent*VSolute/VSolvent with extra terms depending on how many hydrogen-bond donors (alcohols, phenols, amines, amides, thiols) are on the solute and whether the solvent is water, a mono-alcohol or a poly-ol. If the solvent is water and the solute contains alcohol groups, there are special parameters depending on whether the alcohols are primary, secondary or tertiary. There is a further refinement (not included in this version) which discounts some of the solute’s hydrogen bond donors if they are likely to be internally bonded.

The complication is that the E, A and H terms all depend on the volume or molar fraction which is the precisely what you are trying to calculate, so there is an iterative process involved till the equation balances.

The output is the Ideal solubility (as mole fraction), the real solubility (as mole fraction, volume fraction and weight %) plus the following (which come from taking the exponential of their terms in the log-solubility equation):

•	The ideal solubility is divided by the Activity coefficient. For ideal solutes this is 1. For moderately soluble chemicals it is in the range 1 to 10, for highly incompatible solutes it can rise to more than 100.
•	The ideal solubility is multiplied by the Entropy term. This is usually larger than 1, except for small solutes in large solvents.
•	The ideal solubility is multiplied by the Hydrophobic term. This is usually less than 1 for large molecules in water or typical alcohols. It is 1 for non-water/alcohol solvents.

From these four terms you get a very good idea of where the solubility or insolubility is coming from.

Because water is such a special solvent, click the Use Water as the solvent option for the solvent rather than enter [H]O[H] into the solvent SMILES box. Because both the entropic and hydrophobic effects in water are so large, don’t expect the calculation to be amazingly accurate for solubilities below 0.05 mole fraction. At this stage there aren’t good Wilson parameter estimates so they are both set to 1 (ideal!) and you’ll need to make your own judgement of what they should be. A warning label appears to remind you of this fact.

Because the predictions of HSP, MPt and Wilson are all subject to error, feel free to override any/all of them and re-calculate solubility using the Manual Calculation button.

For those interested in the theory, the Solubility Theory button opens a form where the effects of MPt, Enthalpy of Fusion, Delta Heat Capacity, Heat of Mixing and Entropy of Mixing can all be explored, as well as the simple Yalkowsky assumption. The graph (which can be read with the mouse) plots the mole fraction solubility v temperature, with 0°C being the lowest temperature and the MPt being the highest temperature. Alternatively the data can be shown as a van’t Hoff plot of ln(x) v 1/T where the ideal case is a straight line shown in black as a reference.

Solubility is increased (i.e. you get a higher mole fraction at a lower temperature) with a lower MPt, a lower Enthalpy of Fusion, a higher Delta Heat Capacity and a negative Heat of Mixing. The theory is explained in the eBook. Note that at some positive values of Heat of Mixing the curve takes on an odd shape. For reasons explained in the eBook these curves are unrealistic (they violate the Gibbs phase rules) and instead represent “oiling out” phenomena.

Miscibility
It seems obvious that using activity coefficients calculated via Wilson parameters (see Azeotropes) or, even, just using HSP Distance, it should be easy to calculate whether a pair of solvents is miscible or not. But it turns out to be a notoriously hard problem and it can be shown that Wilson activity coefficients can never predict immiscibility.

A slightly different problem is defining “miscible”. Does this mean “miscible at all proportions and all (reasonable) temperatures”? Or, conversely, does “immiscible” mean “you can never get any proportion of Solvent A into Solvent B”?

A further problem is testing out any miscibility prediction scheme. The famous Godfrey paper on miscibility would seem to imply that miscibilities are reliably known for a vast number of solvents. But close examination of the original paper shows some problems. And if a table says “borderline” do we define the pair as miscible or immiscible?

In the end we were pragmatic and assembled a list of 900+ solvent pairs where we felt reasonably confident of the data. And “borderline” pairs were (after a lot of debate) classed as “immiscible”. One reason for this is that we have found cases where the presence of a solute in a miscible pair was enough to cause a phase separation; so it’s better to err on the side of over-predicting immiscibility than under-predicting.

Despite considerable effort we were unable to find a commercial tool that could reliably predict the test dataset which would, in turn, have allowed us to create a wider training set for our HSPiP tool.

So what we have is a fitting to the dataset using carefully selected parameters. One set combines a variant on the HSP Distance (using ~4, 1, 1) as the factors for δD, δP and δH) plus the sum of the MVol of the two solvents. This last term reflects the fact that miscibility indisputably decreases for large MVol molecules (e.g.  Diethylene Glycol Monoethyl Ether is immiscible with Hexadecane, borderline with Tetradecane and miscible with Decane). The second set is somewhat better in terms of prediction. It adds a Donor/Acceptor cross-term to the fit, (δHDon1-δHDon2)*(δHAcc1-δHAcc2). As with everything else to do with Donor/Acceptor it is hard to know what the best way is to capture the effects, but this single cross-term does an efficient job.

It is gratifying that a term close to the classic HSP Distance² (with the famous factor of 4) appears to be a key part of the fitting and that the MVol also plays an important part via the correct exponent (1 compared to 2). 

You can calculate the estimates automatically from two SMILES strings, or you can enter HSP values manually (or via Ctrl-P to Paste from other sources) and click the Manual Calculation button.

If the calculation is done from SMILES and if the two solvents are in the 900+ database then the value from the database is shown – otherwise it is left blank.

We considered adding gradations of prediction, but there simply aren’t sufficient good data to make the gradations valuable. So in both cases the calculated Distance and MVol factors are summed and compared to a cut-off. If the sum is higher than that value the result is shown as “Immiscible”, otherwise it is shown as “Miscible”. Quite why there is a sudden cut-off at this value is currently unknown – remember this is a fitted correlation only.

The miscibility prediction is used in the Solvent Optimizer via the MChk (Miscibility Check) button.

A more fundamental theory of liquid miscibility has been provided by Sanchez and Lacombe, Robert H. Lacombe and Isaac C. Sanchez, Statistical Thermodynamics of Fluid Mixtures, The Journal of Physical Chemistry, Vol. 80, No. 23, 197. Dr Lacombe has kindly provided a simplified algorithm based on HSP Distance which calculates the temperature above which a given pair of liquids will be miscible at a given volume fraction.

Where the volume fractions of the solvents are φ1 and φ2, the molar volumes are MVol1 and MVol2, r is their ratio MVol1/MVol2, the HSP Distance squared is D2 and R is the gas constant then the temperature, T, at which the solvents become miscible is given by:

T=φ1*φ2*2*MVol1*D2/[4R(r*φ1+φ)]

The graph shows T calculated using the classic Distance (blue) and also the Distance including Donor/Acceptor terms via the Beerbower formula (cyan). Because most of us are not interested in miscibility temperatures <-50°C or >100°C the graphs are cut off at these points.

Note that you have to draw your own conclusions about miscibility and the Miscibility outputs with/without D/A are the simpler algorithm.

Reactions
Following some user requests a “Reactions” tab has been added. You enter your SMILES as normal and Y-MB calculates the HSP values and the functional groups.

It takes those functional groups and provides for each of them the typical sorts of reactions you would expect. The reaction types are taken from a table built in to HSPiP – it seemed too complex to allow this to be user-editable.

This is done on an individual functional group basis and makes no attempt to identify, say, C=C-C=O as a potential Michael Addition target. Only the simpler groups are used.

If users find this approach helpful then (a) the reaction types can be refined, (b) the reaction types can be brought out in other aspects of HSPiP and (c) the reaction list can be made user-editable. Just ask!

SFBox-FE
SFBox Front End allows you to do sophisticated Self-Consistent Field (SCF) calculations on polymers/surfaces using Scheutjens-Fleer (SF) theory as developed by the team at Wageningen University. SFBox itself is from Prof Frans Leermakers’ team and represents the coming-together of the best coding techniques to deliver rapid and reliable SCF calculations.

SFBox-FE has a set of standard SFBox template files for different setups (e.g. PolyAds.txt for the standard polymer adsorption case) which are modified with your specific parameters, saved as Input.in which SFBox then processes and provides the results in Output.txt. Feel free to look at any of these files, but only alter the input templates if you really know what you are doing – and if you’ve made backups first.

The Basic inputs
SCF calculations are based on lattice theory, so some of the key inputs are made with respect to the lattice, not actual polymers and surfaces.

N A is the number of monomer units in the basic polymer (labelled A). We need to call the default A because we have N B for the number of B units in an A-B Di-Block or in a Comb copolymer. For the Planar Brush (grafted polymer) you need to specify the Graft Density.

ΦParticle is the volume fraction of particles in your formulation, ΦPolymer (A) is the volume fraction of polymer in your formulation. [For the 2Poly case of two different polymers to look at depletion flocculation, there’s ΦPolymer (B)] 

Radius in lattice units, automatically translated to approximate nm. This makes little difference to the calculations and can usually be left on its default value of 100.

The Chi Parameters
[The χ Calculator is described below]
Those familiar with basic polymer solution theory will know that the Flory-Huggins χ (chi) parameter captures the ability of polymer and solvent to interact. When χ=0 the polymer and solvent are completely compatible, when χ=0.5 that’s the θ point where the interactions are perfectly balanced. Above 0.5 the polymer and solvent are less compatible. Whether the polymer crashes out of solution depends both on χ and on MWt, with larger MWts being more likely to crash out because entropic effects don’t favour dissolution.

In the program, this “standard” χ parameter is shown as χ ASolvent along with the equivalent χ BSolvent. This governs how the chain likes to extend into the solvent – a lot when χ~0 and not much when χ>0.5.

We then have χS AParticle which describes the relative attractions of the solvent and the A polymer for the particle surface. [The S is for Silberberg who came up with the idea and also decided to put a minus sign in front of the value.] When χS=0, the particle is equally happy interacting with the solvent and the polymer. When χS=-1.5, the polymer is very strongly preferred by the particle and this gives near-total attachment of the polymer to the surface along with displacement of the solvent from the particle. In other papers (and internally in SFBox) the equivalent relevant preference is a Boltzmann kT value between 0 and, say, 10. There is, of course, the similar χS BParticle for the B portion of the di-block or comb.

For the A-B di-block and the A-B comb copolymers the convention is that A is more attracted to the particle than B, and B prefers the solvent more than A does, but you are free to do what you want. Finally χ A-B describes the mutual dislike of the A and B blocks. Almost by definition, this χ does not go below 0.25. 

For comb copolymers you need to specify N Combs (B) for the number of the comb side chains along the length of the A polymer. 

For brushes onto particles, a Graft Density is required.

Internal parameters
These parameters are used internally by the calculations and are provided for those familiar with the theory who want to check that things are looking OK.

NL is the number of lattice elements used in the calculation, historically called Nlayers, a term that many find confusing. This is usually be far fewer than N, because the polymer tends to wrap itself into a ball with a Radius of Gyration, Rg. Although there are complex ways to calculate NL, the program varies it between 5x and 10x Rg, giving a good balance of speed without raising difficult problems.

φBulk is the volume fraction of polymer in the bulk once the polymer has equilibrated with the particles. If there is strong attraction and a small φpolymer, the value of φBulk will be very small. Once you exceed a certain minimum φpolymer, the value of φBulk increases rapidly.

θ is the total number of polymer segments, and important parameter in the SCF calculations.

The Graphs
The focus is on the polymer volume density φ, plotted against the lattice number z, from 1 to NL. This is split into φ all, which is the total, then φ t+l, the sum of the polymer at the surface (called “trains”) plus the volume away from the surface (mostly as “loops”) and then φ tail, the relatively small area of “tails”. Finally there’s the amount of free polymer φ free. The graph automatically shows the relevant (or available) calculated φ values.

The graph itself sometimes jumps around as it chooses a suitable auto-scale. You can choose a fixed scale (for the Y you need to fix both min and max) if you prefer – both have their uses. You can select Log on either or both axes. While it is fascinating to look at details by invoking the Log X or Log Y options, the user is advised to default to linear plots (probably with a fixed scale to zoom in to areas of interest) to grasp the essence of any calculation. It is all-too-easy to get distracted by a fascinating curve which turns out to down in the φ=0.0001 level that’s usually not relevant to a formulation issue.

For those who want to see things in a more familiar nm-scale, then select the @0.3nm/lattice option which makes the reasonable assumption that one lattice site is 0.3nm.

If you want to see extra data, the file Output.txt is a simple tab-separated file that can open in Excel. You will quickly work out what the data mean!

Speed, glitches etc.
Considerable effort over several decades have produced optimized algorithms for solving the difficult SCF optimizations. On a good laptop, for simulations up to a few 100 monomers you can set Live Calculations and get near-instant responses. If things start to slow down, just uncheck Live Calculations and hit the Calculate button each time you have a new set of conditions. The time for each calculation is shown for reference. If the calculation takes more than 10s (or whatever you set in the Time-out box) it automatically times out. 

Like all numerical calculations, there are chances of glitches and numerical explosions. If there is an “Err…” shown in the time box, or the plot looks stupid, or if there is nothing visible, then you’ve hit one of these problem areas. If you hit such a problem, you can trade off speed for accuracy by selecting a smaller Δmax value such as 0.01, which makes the calculation more cautious and less likely to head to a false minimum. You can also try the Tolerance value. If this is “small” (a minimum of 7) calculations are done “only” to a tolerance of 10-7 so are relatively fast. Set it to a larger value (a maximum of 14) calculations are a bit slower but go to a tolerance of 10-14. The defaults are respectively 0.1 and 11 which work well for many cases. However, when you do Interparticle calculations you may need to adjust these for some cases. If you want to see what SFBox says about its problems, select the Get Calc Info option before clicking Calculate. A black box (the Console) briefly flashed into view then the message (“console output”) from SFBox appears. For complex reasons, this option is not available for the Interparticle option.

Saving and Loading
Clicking the Save icon saves all your current settings which can be Loaded at any time. This makes it very easy to build a library of interesting simulations. If you want to share scenarios with colleagues, just email one of these files. If you want to point out a bug, just email me the .sfb file along with a description of what you think is going wrong. A few example files are included in the Examples sub-folder of SFBox.

Interparticle Interactions
What we usually want to know is whether the added polymer will stabilize or de-stabilize the particles. By clicking the Interparticle button a series of calculations is carried out from which the free energy change, ΔG in units of kT, is calculated across the NL range. The calculation includes the vdW attraction between the particles which is proportional to the radius and the Hamaker constant, A12 which is specified in zJ, 10-21J and where a good default value is 10. To turn off the vdW interaction, set A12 to 0.

If the result is positive then there is a barrier, if negative then there is attraction. It is unfortunate that the calculations cannot be done in Live mode (which is automatically turned off if you click Interparticle) – you just have to be patient and change parameters one at a time and wait the 1-3s (usually) for the hugely complex calculations to take place. Don’t be too ambitious at first, be ready to invoke Δmax or Tolerance if the results look odd, and be generous to the authors if the plots at times look a bit noisy. Usually noisy plots come from cases where the energies are finely balanced and the details really don’t matter because your system is likely to be as unstable in real life as it is in the calculation.
These plots automatically scale to any positive maximum, cutting off the negative portion which rapidly gets very negative and therefor unnecessarily dominate the graph. If there is no maximum then you just see a negative plot to remind you that the system is going to be highly unstable.

Adsorption Isotherms
In principle we could calculate the adsorption isotherm - how the amount adsorbed depends on the bulk polymer concentration. But usually there is no point in doing this because the SF-based isotherm is generally (i.e. with standard academic examples) a horizontal line from φ < 10-8! You can confirm this by sliding the φ value and observing how little the graph changes. Experimentally, many (academic) isotherms show a near-vertical rise at very low concentrations with a flat plateau (as theory suggests) or a gentle rise (secondary effects not captured in these simpler simulations).

Where it gets interesting is at χ values, especially the χS values, where there is competition between particle, solvent and polymer. This area is less explored in the literature and highly relevant to the many formulators who have used sub-optimal dispersants in the wrong solvent environments, but didn’t have the tools to work out why things were going wrong.

To explore the isotherm, just drag φ Polymer while keeping an eye on φ Bulk. You will quickly get a good idea of how easy or hard it is to saturate the particles with polymer.

The χ Calculator
The SF community has always assumed that the χ and χS parameters were somehow known, and maybe they were for the relatively few simple cases they explored. How do we get them for our real-world systems?

The χ values are simple. Historically, if the HSP Distance D between the polymer and the solvent is known, then we combine it plus the solvent’s MVol via χ = MVolD²/(4RT). But this assumes a radius, R0 of 8. If we have a different measured value we can plausibly say:

χ = 2MVolD²/(R0RT).

Knowing DS from particle to solvent and the particle’s measured HSP radius RS then we can create a χSol between particle and solvent via:

χSol =2MVolDS²/(RSRT).

With less certainty, given DP from particle to polymer and the MVol of the polymer’s monomer unit, and using RP the smaller of the two radii Ro and RS, we can create χPol between polymer and particle via:

χPol =2MVolDP²/(RPRT).

Given that we now have χ values for the solvent with respect to the particle and of the polymer with respect to the polymer, χS (the S is attributed to Silberberg who developed the basic idea) which is the relative attraction of the polymer and of the solvent to the particle can plausibly be calculated via 

χS = 3(χPol-χSol)

giving us -1.5 with a perfect polymer and a borderline solvent and 0 when they are equally attracted. Users will find this -1.5 to 0 range rather odd. But that’s what Silberberg chose and it’s too late to change it.

The χA-B parameter between the two polymers is calculated via a similar route, using the smaller of the radii in the calculation and an average of their respective MVols.

You can Ctrl-D/Ctrl-P copy HSP values into the relevant boxes.

Whether you choose to use the calculated χ values is up to you. They are very much experimental and as the community gets to use the tool more regularly we will hopefully be able to provide better estimates.

SFBox-P – Simulation of polymers, di-blocks and guest solubilization
The first thing to know is that you can simulate a polymer in its solvent with a χ value and can add extra polymer (φ Polymer) to see how that affects the conformation of a polymer chain as you go from “dilute” to “semi-dilute”. The default is for the X and Y axes to be in log mode as it is tricky to see what is going on without them – and because academic texts tend to use these log plots.

Then you can simulate a single chain of di-block to see how the different χ parameters affect the distribution of the chain segments.

In each case you get χ Crit : φ Crit. These are a critical χ value above which you are guaranteed to get phase separation above a critical volume fraction. For the single polymer this is just χ A but for the di-block there are 3 relevant χ values and I’ve chosen to show χAB with the other two being the values from your sliders. φ Crit is the critical volume fraction above which you get the separation.

The Micelles calculations are very powerful and are my implementation of the work (theory and scripts) by Dr Alessandro Ianiro. The work is beautifully described in his PhD thesis (at Technical University, Eindhoven) which you can download from (https://research.tue.nl/nl/publications/complex-pathways-in-block-copolymer-dispersions-self-assembly-pha. I have thanked him personally, here are my public thanks.

Caution: start off with relatively short chains (e.g. 100, 50), medium χA values (1.5) and Spherical micelles, with a modest Time-out value. When you want to look at challenging bilayers then you will need a large time-out and plenty of patience. As with the Particles calculations, you can change the numerics via Δmax and Tolerance to get the balance of speed and accuracy that suits your problem.

You define a lyophobic (“solvent-hating”) block A (I have reversed Alessandro’s notation, he chose B as the insoluble block) and a lyophilic (“solvent-loving”) block B, which is neutral – this version cannot deal with charged species, though SFBox itself can handle them. In his thesis these are caprolactone and PEO (polyethylene oxide) respectively. You can also create a conventional surfactant with A being an alkane chain.

When you click the Micelles button (these calculations are sophisticated and take many seconds) you get a visual output of All, A, B and solvent. You also get a calculated Critical Micelle Concentration (CMC) [or Critical Aggregate Concentration, CAC, if you prefer], an Aggregation #, a Core Radius and a Hydrodynamic Radius. 

If you use relatively small EO units combined with relatively long caprolactone units you can adjust the lattice # accordingly. So a 40:40 CL:EO di-block might best be shown as 80:40 because the CL is twice the size. If you select the 0.4nm option then each lattice unit is assumed to be equivalent to an EO unit which is approximately that size. This is bigger than the 0.3nm assumed (on the basis of polyethylene) for the particle version.

These work well for the default Spherical option. If you select the Cylindrical option the Aggregation # is much smaller – it’s just the number in a single layer slice through the cylinder. For the Bilayer the number is even smaller, just the number of molecules in a single lattice slice portion of the bilayer.

How do you know whether you will have a spherical, cylindrical or bilayer structure? For your given conditions (and, yes, this is a bit tedious, especially because the bilayer calculations are slow), you calculate the CMC for each of the 3 options. Whichever is the lowest value will be the preferred state.

As the Ianiro thesis beautifully illustrates, and as we know instinctively, di-block micellar behaviour is very complex. If, for example, you make the A block less lyophobic (in the thesis this is done theoretically and experimentally by changing the water:ethanol ratio in the solvent) then the CMCs, aggregation #s and preferred conformations all change. Having the capability to simulate this in SFBox-P is game-changing for formulators – it’s simply never been possible before.

Guest solubilization
Even more dramatic is that we can simulate the solubilization of a Guest molecule into the micelles. With the Guest Calcs option selected you have to provide 4 parameters plus a choice of guest shape. The first 3 parameters are the χ parameters of Guest-to-A, Guest-to-B and Guest-to-Solvent. The fourth, φ G-bulk, is a bulk solubility (as volume fraction) of your guest in the whole system. We assume you know this as it’s your problematic solute where you want to increase the solubility. Maybe it’s your target solubility and you want to see how to obtain it. This value is used to normalize the rest of the calculations.

As this is a lattice methodology we don’t define your solute as a molecule but as a lattice approximation. You can choose either a linear molecule of 2, 4 or 6 units, e.g. L4 or a star molecule with 5 or 9, e.g. S9.

In addition to the plot of Guest concentration (and you see whether it prefers the core, the corona or, more usually, the zone in between) you get φ G* which is an idealised concentration expected from your χ G-S,  φ G-free, the actual free concentration (often close to φ G*) and % Guest, how much of the micelle is taken up by guest. You also get an estimate of % in the Core, Interface and Outer regions, though these numbers should be treated with caution.

Note that you can compare the sizes of the core and hydrodynamic radius with and without Guest. The results are often a surprise. But even more surprising when you find yourself in emulsion mode.

Emulsions
Curiously, you can just assume that your guest is an oil and get an idea of how the whole system acts as an emulsion. To look at this you need the curious Layer* option. This simply multiplies the number of layers used in the calculation. Very often, all this does is slow down the calculation, with the calculated and graphed values relatively unchanged. But especially in cases where χ G-S is high (seriously oily oils) the results change as in increase Layer*. This is because with the same value of φ G-bulk you are adding more and more guest, while the di-block polymer concentration is staying constant – so you push more and more guest into the di-block, so much so that you end up with a near 100% guest core, i.e. a typical emulsion. To explore this phenomenon, raise χ G-S to, say, 2 and then cautiously increase Layer* - calculations get much slower, hence the caution.

One final note. As hinted above, the thesis is a combination of theory and experiment, in itself remarkable. Equally remarkable is that despite SF theory being relatively simple, there is an impressive match between theory and experiment.

About SFBox Front End
The front end is written by Prof Steven Abbott with the generous help of Prof Frans Leermakers from Wageningen U. He also thanks Prof Terence Cosgrove of U Bristol who has had a long been a proponent of SF theory and provided crucial assistance on various parts of the long journey to implement SFBox-FE.

SFBox itself is the intellectual property of Prof Leermakers at Wageningen U. and is used with kind permission. 

Keyboard Shortcuts
Here is a list of some of the important tricks to make life easier when you run HSPiP:

General
In any table or in any triplet of δD, δP, δH if you do Ctrl-D to Duplicate the HSP values are placed on the Clipboard.
If you have HSP values on the Clipboard then Ctrl-P will Paste into a row in a table or into any triplet of δD, δP, δH.
In any table, clicking on the column header will sort it from low to high, then clicking again will sort it from high to low.

Main form
Ctrl-O Opens a new .hsdx file.
Ctrl-S Saves a file.
Ctrl-N Starts the process of creating a New dataset.

In a dataset
Double clicking on any solvent brings it to the top and shows the Distance of the other solvents from your chosen solvent.

Main data table 
If you click on a row then Ctrl-D will Duplicate as normal (putting HSP and MVol onto the Clipboard) but Ctrl-F places a Full copy of all the data in that row.
If you select one or more chemicals then Right Click they are copied into the Solvent Optimizer.

3D view
You rotate by clicking and moving the mouse.
You zoom by Shift Clicking and dragging or via the Mouse-Wheel.
You pan by Ctrl-Clicking and dragging.
Remember the 3D Reset button restores the standard view if you get lost in 3D space.

After Sphere calculations the calculated HSP are placed on the Clipboard ready to Ctrl-P into any relevant HSP triplet or into a Word or Excel document.

Solvent Optimizer
To grey out one or more solvents, Ctrl-click on a selection or individually.
To add solvents from the main data table see the Right Click trick above.
Ctrl-O and Ctrl-S open and save files as normal

Polymers
Double clicking on any polymer places it at the top of the table with the other polymers sorted by distance.
Selecting 1 or more polymers then clicking Solv.Match places those polymers onto the 3D plot along with a golden dot that shows the “join” point where a solvent would be for the minimum distance to both polymers.
Selecting a solvent from a dataset then clicking Poly.Match sorts the polymers by distance from that solvent.
Ctrl-O and Ctrl-S open and save files as normal

Diffusion
Ctrl-O and Ctrl-S open and save files as normal

About HSPiP
The program is written by Prof Steven Abbott and Dr YAMAMOTO, Hiroshi. It is Copyright © 2008-20 Steven Abbott and YAMAMOTO, Hiroshi. The eBook within it is written by Prof Steven Abbott and Dr Charles M. Hansen and is Copyright © 2008-2020 Steven Abbott and Charles M. Hansen. The 1st Edition was 2008, 2nd Edition 2009, 3rd Edition 2010, 4th Edition 2013, 5th Edition 2015.

The Sphere algorithm is as described in Hansen, C. M., Hansen Solubility Parameters: A User’s Handbook, CRC Press, Boca Raton FL, 2007. 

Some of the case studies from the Handbook are provided as illustrations and test cases.

The Y-MB methodology was developed by Dr YAMAMOTO, Hiroshi. He is a member of the core Abbott/Hansen/Yamamoto team and is HSPiP Senior Developer in Japan and author of the outstanding Pirika website. For those seeking new ideas in HSP and “thrill seeker” versions of HSP-based tools, visit http://www.pirika.com/NewHP/PirikaE/HSP.html.

The authors are immensely grateful to Dr Emmanuel Stefanis and Prof. Costas Panayiotou for providing them with a complete dataset for the Stefanis-Panayiotou method. The discussions with Dr Stefanis and Prof. Panayiotou were always stimulating and informative. Dr Yamamoto kindly added the automated process for determining the UNIFAC groups for the Stefanis-Panayiotou table.

The coefficients for the Van Krevelen and Hoy methods for calculating HSP are taken from Van Krevelen’s well-known Properties of Polymers: Their Correlation with Chemical Structure, 1990. which contains many examples of group contribution methods for polymers.

Dr Richard Valpey III and his company SC Johnson are warmly thanked for allowing publication of the surfactant and fragrance HSP that had been calculated for them by Dr Hansen.

Dr Mario Blanco is warmly thanked for his contribution to the chapter on the sense of smell.

Dr W. Michael Brown from Sandia National Laboratories is warmly thanked for giving us permission to use his original Polymer SMILES dataset. In earlier versions of Help we included a link to the dataset but it is no longer active.

We are grateful to all those who gave us permission to use their published data as examples. Each of them is acknowledged in the appropriate section of the eBook.

Bugs, improvements, suggestions
Please email me at steve@hansen-solubility.com with bug reports, improvements, suggestions.

Guarantee
Here is a quote from the Introduction to the book:
I am taking personal responsibility for some of the more exploratory ideas in the book and software. I am therefore offering a personal guarantee that when you show that the ideas are wrong I will (a) upgrade the relevant section(s) of the book/software and (b) make it clear that I was wrong and (c) acknowledge you (if you wish) as the source of the correction. Science thrives on its falsifiability and I positively welcome the chance for myself and the HSP community to learn from the refutation of ideas which seem to me to be reasonable on the basis of the evidence to hand at the time of writing.
You can email your critiques to me at the above address.

Disclaimer
The theories, examples, formulae and calculations used in this eBook and software are based on extensive theoretical research and experimentation over many years by the HSP community. But they should only be used as a guide to any particular issue. Hansen-Solubility.com cannot be held responsible for problems resulting from use of the eBook and software.

Although best endeavours have been made to ensure that the best fit is best, the complexity of HSP 3D surfaces mean that it is up to the user to confirm if the best fit makes sense within the context of the user’s data and requirements. In particular, kinetics (small molar volumes) sometimes over-rides thermodynamics (HSPs) so the user’s own data might contain misleading results. Remember to consult the molar volumes within the table and use your own judgement to decide on borderline cases.

The HSP data file has been developed over many years. Like all worthwhile databases errors are certain to have crept in. Whilst considerable effort has gone in to removing glitches, users are urged to use their own judgement as to whether HSP relevant to their application are of acceptable accuracy.